您好,登錄后才能下訂單哦!
通過狀態(tài)檢查器checkLink,不斷的獲取切片當中的網(wǎng)址,并且打印了出來。
順序執(zhí)行。這也就意味著,一旦我訪問google.com等網(wǎng)站就會陷入到等待的狀況中。后面的網(wǎng)址無法訪問。
1 | package main |
在函數(shù)的前方,加入go
關鍵字,代表開辟一個新的協(xié)程。
運行一個go語言的程序的時候,都會開辟一個main協(xié)程。子協(xié)程通過go的關鍵字來創(chuàng)建。
通過Go的調(diào)度器,會將go的協(xié)程分配給CPU core取執(zhí)行。當某一個子協(xié)程陷入了暫?;蚪Y束,Go的調(diào)度器會立即切換到其他的協(xié)程工作。因此大大的提高了效率。
但是當前的程序,直接退出了。因為main協(xié)程終止以后,子協(xié)程全部都會被銷毀。
1 | package main |
通道就是實現(xiàn)協(xié)程之間的通信。
c:= make(chan string) 代表創(chuàng)建了一個通道,此通道只能夠傳遞字符串類型。
1 | package main |
1 | http://www.baidu.com 連接上了 |
上面的代碼輸出的結果為:
意味著百度連接上之后就退出了。這是由于主協(xié)程fmt.Println(<-c)陷入等待,當百度的子協(xié)程運行完畢,為通道添加信息之后。那么主協(xié)程退出,但是其他的協(xié)程還沒有運行完畢。但是會直接銷毀。
如果想要全部打印出來,增加了多個等待通道的指令。
1 | package main |
1 | http://www.baidu.com 連接上了 |
并不是順序執(zhí)行的。
1 | package main |
比上一個代碼效果一樣,更加的清晰
1 | package main |
下面的代碼有一個非常嚴重的問題,
1 | package main |
上面寫法的改進,不再是引用,而是每一個副本。傳遞到函數(shù)中。
1 | package main |
本文鏈接: https://dreamerjonson.com/2018/11/27/golang-20-channel/
版權聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協(xié)議 許可協(xié)議。轉載請注明出處!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。