亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言如何并發超時處理詳解

發布時間:2020-09-14 20:41:41 來源:腳本之家 閱讀:129 作者:daisy 欄目:編程語言

實現原理:

并發一個函數,等待1s后向timeout寫入數據,在select中如果1s之內有數據向其他channel寫入則會順利執行,如果沒有,這是timeout寫入了數據,則我們知道超時了。

實現代碼:

package main 
import "fmt"
import "time"
func main() {
 ch := make(chan int, 1)
 timeout := make(chan bool, 1)
 // 并發執行一個函數,等待1s后向timeout寫入true
 go func() {
 time.Sleep(1000)
 timeout <- true
 }()
 // 這里會等待ch或timeout讀出數據
 // 因為一直沒有向ch寫入數據
 // 在1s后向timeout寫入了數據
 // 所以執行了timeout的case
 // 利用這個技巧可以實現超時操作
 select {
 case <- ch :
 fmt.Println("read from ch")
 case <- timeout :
 fmt.Println("time out...")
 }
}

總結

以上就是這篇文章的全部內容,希望對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霍州市| 太和县| 云安县| 托克逊县| 大港区| 阜康市| 荣昌县| 梅州市| 万全县| 察雅县| 沁阳市| 通榆县| 盐池县| 南川市| 穆棱市| 临沂市| 都兰县| 大名县| 永城市| 梁山县| 郴州市| 修文县| 武清区| 当涂县| 桂东县| 邵武市| 德州市| 桦甸市| 海林市| 怀来县| 延边| 色达县| 荣昌县| 梁山县| 怀宁县| 崇礼县| 乃东县| 来安县| 彭阳县| 阳山县| 容城县|