最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言編程之select信道處理示例詳解

 更新時間:2022年04月14日 08:27:29   作者:Jeff的技術(shù)棧  
這篇文章主要為大家介紹了go語言編程之select信道處理示例詳解,<BR>有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪

select信道處理

注意:有default就不會阻塞

package main
func main() {
	var chan1 = make(chan int)
	var chan2 = make(chan int)
	select {
	case <-chan1:
		// 如果chan1成功讀到數(shù)據(jù),則進(jìn)行該case處理語句
	case chan2:
		// 如果chan2成功讀到數(shù)據(jù),則進(jìn)行該case處理語句
	default:
		// 如果上面都沒有成功,則進(jìn)行該case處理語句
	}
}

fibonacci數(shù)列監(jiān)聽

//fibonacci     1 1 2 3 5 8
package main
import (
	"fmt"
)
//ch只寫,quit只讀
func fibonacci(ch chan<- int, quit <-chan bool) {
	x, y := 1, 1
	for {
		//監(jiān)聽channel數(shù)據(jù)的流動
		select {
		case ch <- x:
			x, y = y, x+y
		case flag := <-quit:
			fmt.Println("flag = ", flag)
			return
		}
	}
}
func main() {
	ch := make(chan int)    //數(shù)字通信
	quit := make(chan bool) //程序是否結(jié)束

	//消費者,從channel讀取內(nèi)容
	//新建協(xié)程
	go func() {
		for i := 0; i < 8; i++ {
			num := <-ch
			fmt.Println(num)
		}
		//可以停止
		quit <- true
	}() //別忘了()
	//生產(chǎn)者,產(chǎn)生數(shù)字,寫入channel
	fibonacci(ch, quit)

}


1
1
2
3
5
8
13
21
flag =  true

select監(jiān)聽協(xié)程

func main()  {
	//創(chuàng)建一個有緩存的channel
	ch := make(chan int, 0)
	//len(ch)緩沖區(qū)剩余數(shù)據(jù)個數(shù), cap(ch)緩沖區(qū)大小
	//新建協(xié)程
	go func() {
		for i := 0; i < 10; i++ {
			ch <- i //往chan寫內(nèi)容
		}
	}()
	ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
	go func(ctx context.Context) {
		ticker := time.NewTicker(1 * time.Second)
		for _ = range ticker.C {
			select {
			case <-ctx.Done():
				fmt.Println("child process interrupt...")
				return
			default:
				fmt.Printf("send message: %d\n", <-ch)
			}
		}
	}(ctx)
	defer close(ch)
	defer cancel()
	select {
	case <-ctx.Done():
		time.Sleep(1 * time.Second)
		fmt.Println("main process exit!")
	}
}

以上就是go語言編程之select信道處理示例詳解的詳細(xì)內(nèi)容,更多關(guān)于go語言select信道處理 的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go語言死鎖與goroutine泄露問題的解決

    Go語言死鎖與goroutine泄露問題的解決

    最近在工作中使用golang編程,今天的文章給大家分享一下Go語言死鎖與goroutine泄露問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Go+Kafka實現(xiàn)延遲消息的實現(xiàn)示例

    Go+Kafka實現(xiàn)延遲消息的實現(xiàn)示例

    本文主要介紹了Go+Kafka實現(xiàn)延遲消息的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Golang中的信號(Signal)機(jī)制詳解

    Golang中的信號(Signal)機(jī)制詳解

    Signal 是一種操作系統(tǒng)級別的事件通知機(jī)制,進(jìn)程可以響應(yīng)特定的系統(tǒng)信號,這些信號用于指示進(jìn)程執(zhí)行特定的操作,如程序終止、掛起、恢復(fù)等,Golang 的標(biāo)準(zhǔn)庫 os/signal 提供了對信號處理的支持,本文將詳細(xì)講解 Golang 是如何處理和響應(yīng)系統(tǒng)信號的,需要的朋友可以參考下
    2024-01-01
  • go語言實現(xiàn)一個最簡單的http文件服務(wù)器實例

    go語言實現(xiàn)一個最簡單的http文件服務(wù)器實例

    這篇文章主要介紹了go語言實現(xiàn)一個最簡單的http文件服務(wù)器的方法,實例分析了Go語言操作http的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 使用Go語言編寫一個毫秒級生成組件庫文檔工具

    使用Go語言編寫一個毫秒級生成組件庫文檔工具

    在開發(fā)組件庫的過程中,文檔無疑是不可或缺的一環(huán),在本文中將嘗試將Go語言與前端技術(shù)巧妙融合,以創(chuàng)建一款能在毫秒級別完成文檔生成的工具,需要的可以參考下
    2024-03-03
  • Go語言結(jié)合grpc和protobuf實現(xiàn)去中心化的聊天室

    Go語言結(jié)合grpc和protobuf實現(xiàn)去中心化的聊天室

    這篇文章主要為大家詳細(xì)介紹了Go語言如何結(jié)合grpc和protobuf實現(xiàn)去中心化的聊天室,文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Go語言中Map的神奇操作小結(jié)

    Go語言中Map的神奇操作小結(jié)

    Map是一個強(qiáng)大而又有趣的工具,它可以幫助我們高效地存儲和操作鍵值對數(shù)據(jù),本文主要介紹了Go語言中Map的各種操作,包括增加、查找、刪除、遍歷等,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • golang語言中wasm 環(huán)境搭建的過程詳解

    golang語言中wasm 環(huán)境搭建的過程詳解

    將 golang 打包為 WASM,通常有兩種打包方式,一種是 golang 自帶的,另外是使用 tinygo ,接下來通過本文給大家介紹golang語言中wasm 環(huán)境搭建的過程,感興趣的朋友一起看看吧
    2021-11-11
  • Go strconv包實現(xiàn)字符串和基本數(shù)據(jù)類型轉(zhuǎn)換的實例詳解

    Go strconv包實現(xiàn)字符串和基本數(shù)據(jù)類型轉(zhuǎn)換的實例詳解

    在Go語言(Golang)的編程實踐中,strconv包是一個非常重要的標(biāo)準(zhǔn)庫,它提供了在基本數(shù)據(jù)類型(如整型、浮點型、布爾型)和字符串之間的轉(zhuǎn)換功能,本文給大家介紹了關(guān)于Go語言字符串轉(zhuǎn)換strconv,需要的朋友可以參考下
    2024-09-09
  • Golang實現(xiàn)密碼加密的示例詳解

    Golang實現(xiàn)密碼加密的示例詳解

    數(shù)據(jù)庫在存儲密碼時,不能明文存儲,需要加密后存儲,而Golang中的加密算法有很多種,下面小編就來通過簡單的示例和大家簡單聊聊吧
    2023-07-07

最新評論

昌吉市| 岳普湖县| 彝良县| 兴城市| 祁阳县| 南充市| 汾西县| 南昌县| 和林格尔县| 社会| 福贡县| 隆德县| 白朗县| 平远县| 黑河市| 延庆县| 贵阳市| 莱西市| 繁峙县| 湾仔区| 山阳县| 贵溪市| 巴林右旗| 枣强县| 灌阳县| 金山区| 广河县| 肥城市| 临沂市| 通化市| 桑日县| 厦门市| 南澳县| 阿尔山市| 微博| 永嘉县| 建水县| 凤台县| 原阳县| 浦江县| 攀枝花市|