go語言通道插入0_Go語言入門必知教程-通道

Golang提供了一種稱為通道的機制,用于在協程之間共享數據。當函數作為協程執行并發活動時,需要它們共享資源或數據,通道便充當協程之間的管道(管道),提供一種確保同步交換數據的機制。

需要在聲明通道時指定數據類型,可以共享任何類型的值和指針。數據在通道上傳遞:在任何給定的時間,只有一個協程可以訪問數據項:因此在設計上是不會發生資源競爭的情況。

根據數據交換的行為,有兩種類型的通道:無緩沖通道和緩沖通道。無緩沖通道用于在協程之間執行同步通信,而緩沖通道用于執行異步通信。在發送和接收數據瞬間,無緩沖通道保證數據交換是在兩個協程之間執行,緩沖通道沒有這樣的保證。

通道由make函數創建,該函數指定chan關鍵字和通道的元素類型。

創建無緩沖和有緩沖的通道

8764e751855cb923a2c7ce7953284339.png

內置函數make能夠用來創建無緩沖和有緩沖的通道,參數指定chan關鍵字和的要交換的數據類型

使用操作符

8faaa4e639f9edb8361bedf27fa4b7e3.png

從通道中取出值

5eff43e080803037bd3538c304085560.png

無緩沖通道

無緩沖通道沒有指定容量來保存值。因此,在傳輸任何數據之前,這種類型的通道要求發送和接收數據的協程在同一時刻都要準備就緒。如果兩個協程在相同的時刻還未準備好,則通道將使執行數據傳輸的兩個協程阻塞等待對方。同步是在通道上發送和接收數據的基礎,發送和接受數據雙方一個都不能少。

緩沖通道

緩沖通道有指定的容量來保存值。這種類型的通道,不強制傳輸數據的協程雙方在同一時刻準備好執行發送和接收,通過阻塞協程來協調雙方的通信。與無緩沖通道不同,緩沖通道發送或接收的阻塞有不一樣的情況:只有在通道中沒有要接收的值時,接收方會阻塞;只有在沒有可用緩沖區來放置要發送的值時,發送方才會阻塞。

02b94b0e5ea62924117d8394a1742c56.png

每次運行此程序時,輸出的結果不同,這是因為程序和Go調度程序的隨機性。

在上面的程序中,創建一個字符串類型的緩沖通道,其容量為10。WaitGroup的計數是5,代表5個協程。將10個字符串發送到通道中,以模擬協程所要做的工作。最后一個字符串發送到通道后,通道將關閉,主函數將等待所有項目完成。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529089.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529089.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529089.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

aes加密字符串c++_springboot2.2.X手冊:防抓包?快速實現API接口數據加密

溪云閣:專注編程教學,架構,JAVA,Python,微服務,機器學習等,歡迎關注上一篇:springboot2.2.X手冊:redis的7種類型100個方法全解析有沒有遇到這樣子的接口,放到…

鴻蒙系統打造完備終端,搭載鴻蒙系統的手機很快推出,華為生態更加完善

2019年的8月9日,在華為開發者大會上華為向大家正式的發布了一款操作系統——鴻蒙系統。這個系統備受大家的關注,鴻蒙2.0的發布也在時刻期待中。因為在目前的操作系統中,華為的鴻蒙操作系統是僅次于安卓、ios的存在,而今日&#xf…

curl socket 訪問_使用Curl、socket、file_get_contents三種方法POST提交數據 | 學步園

# <?php # /**# * Socket版本# * 使用方法&#xff1a;# * $post_string "appsocket&versionbeta";# * request_by_socket(facebook.cn,/restServer.php,$post_string);# */# function request_by_socket($remote_server,$remote_path,$post_string,$port …

html 標簽 r語言,從R中的字符串中刪除html標簽

我正在嘗試將網頁源代碼讀入R并將其作為字符串處理。我正在嘗試刪除段落并從段落文本中刪除html標簽。我遇到了以下問題&#xff1a;我嘗試實現一個功能來刪除html標簽&#xff1a;cleanFunfunction(fullStr){#find location of tags and citationstagLoccbind(str_locate_all(…

python給圖片加半透明水印_Python 批量加水印就這么簡單!

工作的時候&#xff0c;尤其是自媒體&#xff0c;我們必備水印添加工具以保護我們的知識產權,網上有許多的在線/下載的水印添加工具&#xff0c;但他們或多或少都存在以下問題&#xff1a; 在線工具需要將圖片上傳到對方服務器&#xff0c;信息不安全。 很多工具不具備批量處理…

html 選中狀態,html默認選中狀態

html中標簽用法解析及如何設置selec標簽定義和用法 select 元素可創建單選或多選菜單。當提交表單時&#xff0c;瀏覽器會提交選定的項目&#xff0c;或者收集用逗號分隔的多個選項&#xff0c;將其合成一個單獨的參數列表&#xff0c;并且在將 表單數據提交給服務器時包括 nam…

nemesis什么車_nemesis是什么意思_nemesis的翻譯_音標_讀音_用法_例句_愛詞霸在線詞典...

全部報應Was he aiming at Bryant, his old nemesis and a favorite target in the past?他是不是暗指科比, 一直的“競爭對手”和過去最中意的目標?期刊摘選After the defeat of their old arch nemesis, the Turtle have grown apart as a family.在擊敗舊時強敵后, 忍者神…

wxpython制作表格界面_[Python] wxPython 菜單欄控件學習總結(原創)

1、總結 1、大體創建過程 1、創建一個 菜單欄 : menuBar wx.MenuBar()相當于這個白色地方&#xff0c;沒有File這個菜單 2、創建 菜單 : fileMenu wx.Menu()這兩個不是直接“用的”&#xff0c;叫菜單。既用來分類其他 菜單項 的文件夾樣 3、創建 菜單項 : newItem wx.MenuI…

android 8三星note8,信息太多很煩瑣?告訴你三星Note8有妙招

不知從何時開始&#xff0c;我們眼前的信息變得豐富而繁雜。簡潔的新聞無需經過報紙過濾&#xff0c;發生數分鐘已經城皆知。預測晴雨也無需依靠天氣先生&#xff0c;點亮手機即可洞悉風雨。生活在信息時代的我們僅用幾英寸的窗口觀察世界&#xff0c;信息的洪流難免會遮蔽眼前…

realloc函_realloc(重新分配內存空間的函數)

在頭文件中定義void * realloc(void * ptr&#xff0c;size_t new_size);重新分配給定的內存區域。它必須預先分配malloc()&#xff0c;calloc()或realloc()尚未釋放與free或呼叫realloc。否則&#xff0c;結果是不確定的。重新分配由以下兩者之一完成&#xff1a;a)ptr如有可能…

python做excel表格教程視頻_基于Python實現excel表格讀寫

首先安裝對應的xlrd和xlwt 打開cmd命令窗口輸入pip install xlrd和pip install xlwt就可以安裝。之后輸入pip list檢查是否成功配置&#xff1a;xlrd操作# 接下來就是常用的語法操作&#xff1a; excel_data xlrd.open_workbook(文件路徑)#得到對應的工作表 sheet excel_data…

虛無鴻蒙哪個厲害,【圖說鴻蒙】鴻蒙設定之七柱神(五)

原標題&#xff1a;【圖說鴻蒙】鴻蒙設定之七柱神(五)七柱神玄冥神飛來流去本無心&#xff0c;無空無我混天塵。幻作人形深簡出&#xff0c;不是老嫗是海神。玄冥神 虛無荒海司掌海洋、流動之力 神威之色為藍執掌海洋、流動之力的神&#xff0c;是神道“熵”的最高掌控者&#…

java lambda 排序_Java8特性:Lambda表達式之概念篇

Java自誕生已經有十幾個年頭了&#xff0c;目前也已經發布了第十三個大版本&#xff0c;其中Java8是常用的版本中最新的一個版本。而Java8最大的特性就是&#xff1a;Lambda表達式、函數式接口和Stream流。本篇我只介紹Lamda表達式的概念以及簡單使用&#xff0c;至于別的我打算…

jq獲取表格里的checkbox_Python抓取網頁表格(一)

Python有很多包可以抓取數據&#xff0c;如selenium、requests、scrapy、pandas&#xff0c;每個包都有其適用性&#xff0c;個人認為在抓取數據時&#xff0c;代碼簡潔性和數據獲取的準確性是需要考慮的因素&#xff0c;時間快慢倒不用太在意&#xff0c;畢竟用python抓數據本…

html一個空格多少像素,一個空格占幾個字符?

一個空格通常占2個字符&#xff0c;但有些特殊情況占用3個字符。在程序中&#xff0c;空格占用的字符數取決于程序使用的字符集&#xff0c;如&#xff1a;1、使用多字節字符集時&#xff0c;半角空格占用1個字節&#xff0c;全角空格占用2個字節。2、使用Unicode字符集時&…

各種摳圖動態圖片_不用手。自動、智能摳圖,圖片去背景

BgEraser 是一款基于 AI 的自動、智能圖片去背景工具&#xff0c;無需勾選可用、可刪除區域&#xff0c;上傳圖片&#xff0c;立即下載即扣圖完成的圖片。AppinnBgEraser 真是懶人的福音。在此之前&#xff0c;比如很好用的在線去背景服務 remove.bg&#xff0c;是需要用戶手動…

html用dom顯示xml,html DOM文件引用一個XML文件將不會在瀏覽器中打印

我完全不熟悉這一點&#xff0c;我正在上課&#xff0c;現在變成了一個令人頭疼的問題。我有這個HTML DOM文件&#xff0c;它引用了一個XML文件&#xff0c;我需要在瀏覽器中顯示在屏幕上。它應該只打印標題&#xff0c;標題&#xff0c;第一個&#xff0c;最后一個&#xff0c…

bigdecimal 保留兩位小數_Python的保留小數及對齊

Python的保留小數&#xff1a;方法1&#xff1a;用round函數(有坑)。median 12.3004886print(round(median, 2)) # 保留兩位小數print(round(median, 3)) # 保留三位小數print(round(median, 4)) # 保留四位小數運行結果&#xff1a;12.312.312.3005可以看出Python中的r…

分布式光伏補貼_四川:2020年起工商業分布式光伏已無補貼

來源&#xff1a;四川省發改委日前&#xff0c;四川省發改委發布《四川省分布式光伏建設管理相關政策》&#xff0c;對該省分布式光伏發電項目定義、分類、備案程序、需要國補的項目相關政策進行了梳理。值得注意的是&#xff0c;文件明確&#xff0c;自2020年起&#xff0c;四…

用計算機玩游戲最簡單的方法,如何制作電腦簡易命令小游戲

滿意答案sylvia10172019.01.20采納率&#xff1a;48% 等級&#xff1a;7已幫助&#xff1a;460人簡單的Dos小游戲開始學習java&#xff0c;這周只簡單的學習了C的基本語法&#xff1a;輸入輸出&#xff0c;判斷循環&#xff0c;因此用這些東西在java上瞎寫了一個DOS小游戲。…