国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

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

2020-04-01 19:08:27
字體:
來源:轉載
供稿:網友

實現原理:

并發一個函數,等待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...") }}

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华蓥市| 涿鹿县| 亳州市| 兴隆县| 高青县| 大港区| 潞城市| 东山县| 漯河市| 五指山市| 丹江口市| 阿尔山市| 石棉县| 麻城市| 浮山县| 织金县| 招远市| 万宁市| 松滋市| 遂川县| 嘉鱼县| 富民县| 淮南市| 横山县| 乐亭县| 肇东市| 马龙县| 衢州市| 宽城| 普宁市| 南雄市| 新巴尔虎左旗| 万宁市| 大新县| 兴和县| 张家口市| 保德县| 彝良县| 鲁甸县| 滦南县| 鄯善县|