真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

golang判斷channel已經(jīng)close的方法

channel有點(diǎn)類似于管道,它在goroutine同步與通信中,有著起承轉(zhuǎn)合的作用,同時(shí)也是Golang實(shí)現(xiàn)CSP模型的關(guān)鍵。

10年的義安網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整義安建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“義安網(wǎng)站設(shè)計(jì)”,“義安網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

golang 中大部分類型都是值類型(只有 slice / channel / map 是引用類型),讀/寫類型是值類型的 channel 時(shí),如果元素 size 比較大時(shí),應(yīng)該使用指針代替,避免頻繁的內(nèi)存拷貝開銷。

golang判斷channel是否已經(jīng)close的方法:

讀channel的時(shí)候判斷其是否已經(jīng)關(guān)閉

_,ok := <- jobs

此時(shí)如果 channel 關(guān)閉,ok 值為 false

寫入channel的時(shí)候判斷其是否已經(jīng)關(guān)閉

1、_,ok := <- jobs

此時(shí)如果 channel 關(guān)閉,ok 值為 false,如果 channel 沒有關(guān)閉,則會(huì)漏掉一個(gè) jobs

2、使用 select 方式

再創(chuàng)建一個(gè) channel,叫做 timeout,如果超時(shí)往這個(gè) channel 發(fā)送 true,在生產(chǎn)者發(fā)送數(shù)據(jù)給 jobs 的 channel,用 select 監(jiān)聽 timeout,如果超時(shí)則關(guān)閉 jobs 的 channel.

go func() {
 time.Sleep(time.Second * 3)
 timeout <- true
 }()
go func() {
 for i := 0; ; i++ {
 select {
     case <-timeout:
         close(jobs)
         return
 
     default:
         jobs <- i
         fmt.Println("produce:", i)
         }
     }
 }()

以上就是golang如何判斷channel已經(jīng)close的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!


網(wǎng)頁名稱:golang判斷channel已經(jīng)close的方法
轉(zhuǎn)載源于:http://weahome.cn/article/geijpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部