91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

平度市| 赣榆县| 兖州市| 得荣县| 峨眉山市| 隆德县| 班戈县| 恩施市| 靖宇县| 尼木县| 肇源县| 宜兰县| 密山市| 雷州市| 霍城县| 长子县| 沁阳市| 绥江县| 中超| 冀州市| 澜沧| 克拉玛依市| 丰原市| 和政县| 拉孜县| 江北区| 淮阳县| 沂水县| 公主岭市| 突泉县| 正蓝旗| 宝鸡市| 梁山县| 宁晋县| 黄平县| 海宁市| 阿勒泰市| 巨野县| 稷山县| 田东县| 基隆市|