[Go]多通道監聽器

小黑-avatar-img
發佈於後端
更新於 發佈於 閱讀時間約 2 分鐘
package main

import (
"fmt"
)

func foo(i int) chan int {
ch := make(chan int)
go func() { ch <- i }()
return ch
}

func main() {
ch1, ch2, ch3 := foo(3), foo(6), foo(9)

ch := make(chan int)

//開一個goroutine監視各個通道資料輸出並收集資料到通道ch
go func() {
for {
//timeout是一個計時通道, 如果達到時間了,就會發出一個訊號出來
timeout := time.After(1 * time.Second)
for isTimeout := false; !isTimeout; {
//監視通道ch1, ch2, ch3, timeout通道的資料流出
select { //監視通道ch1, ch2, ch3, timeout通道的資料流出
case v1 := <-ch1:
fmt.Printf("received %d from ch1", v1)
case v2 := <-ch2:
fmt.Printf("received %d from ch2", v2)
case v3 := <-ch3:
fmt.Printf("received %d from ch3", v3)
case <-timeout:
isTimeout = true //超時
}
}
}
}()

//阻塞主線,取出通道ch的數據
for i := 0; i < 3; i++ {
fmt.Println(<-ch)
}
}










avatar-img
8會員
123內容數
嗨,我是一名程式設計師,會在這分享開發與學習紀錄。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
小黑與程式的邂逅 的其他內容
package main import "fmt" func SendNotification(user string) chan string { //...... //建立一個通道來保存訊息 notifications := make(chan string, 500) //開啟
package main import ( "database/sql" "encoding/csv" "fmt" _ "github.com/go-sql-driver/mysql" "log" "os" "strconv" ) var db *sql.DB type User
gRPC是一款跨平台、高性能的RPC框架,他可以在任何環境下執行,主要用於後端為服務開發。在用戶端應用程式中,可以像本地物件那樣呼叫遠端伺服器的方法,因此可以創建出分散式應用。 使用 到https://github.com/protocolbuffers/protobuf/releases下
package main import ( "fmt" "net" "time" ) var ConnSlice map[net.Conn]*Heartbeat type Heartbeat struct { endTime int64 //結束時間 } func main() {
package main import ( "bufio" "fmt" "net" "os" "time" ) func main() { //指定協定 tcpAddr, err := net.ResolveTCPAddr("tcp4", "127.0.0.1:8086") if
Gorm是Go當中一款ORM函數褲,有以下特點: 支持連結 支援鉤子函數Hook 支援預先載入 支援交易 支援複合主鍵 支援SQL生成器 支援資料庫自動遷移 支援自訂日誌 可擴充性 所有功能都被測試覆蓋 安裝 go get -u github.com/jinzhu/gor
package main import "fmt" func SendNotification(user string) chan string { //...... //建立一個通道來保存訊息 notifications := make(chan string, 500) //開啟
package main import ( "database/sql" "encoding/csv" "fmt" _ "github.com/go-sql-driver/mysql" "log" "os" "strconv" ) var db *sql.DB type User
gRPC是一款跨平台、高性能的RPC框架,他可以在任何環境下執行,主要用於後端為服務開發。在用戶端應用程式中,可以像本地物件那樣呼叫遠端伺服器的方法,因此可以創建出分散式應用。 使用 到https://github.com/protocolbuffers/protobuf/releases下
package main import ( "fmt" "net" "time" ) var ConnSlice map[net.Conn]*Heartbeat type Heartbeat struct { endTime int64 //結束時間 } func main() {
package main import ( "bufio" "fmt" "net" "os" "time" ) func main() { //指定協定 tcpAddr, err := net.ResolveTCPAddr("tcp4", "127.0.0.1:8086") if
Gorm是Go當中一款ORM函數褲,有以下特點: 支持連結 支援鉤子函數Hook 支援預先載入 支援交易 支援複合主鍵 支援SQL生成器 支援資料庫自動遷移 支援自訂日誌 可擴充性 所有功能都被測試覆蓋 安裝 go get -u github.com/jinzhu/gor
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
Google Gemini 2.0 的超擬真人語音功能引發震撼,其 Native Audio OUTPUT 技術能模擬各種情緒、語速與停頓,應用層面廣泛,但同時也帶來行銷操控的隱憂。本文探討 Gemini 2.0 的優缺點、應用瓶頸與未來發展,並提醒企業主管及使用者需謹慎評估風險。
2024年底,回顧了過去兩年。 那天在山上跟竹說:不知道為什麼,我覺得這兩年對我來說是生命的一格刻度。 2023、2024這兩年發生了很多事,大三大四對很多人來說都是轉變的時間點,我也不例外。和小時候比起來,更多陌生未知的痛苦,但也有更多不可計量的快樂體驗。擁有更多更多的朋友,卻比過去知道如何與
跟著意志與心之所向行事,向來都是困難的。會考慮太多世俗的眼光,旁人的意見,所以保持安靜是必要的。不需要向其他人解釋與說明,自己想要達成的事,只需要自己努力便是。安靜地看著,用著力氣做著自己的事就好。有許多事,不需要明白地說明,因為能懂的只有自己。工作,家人,情人,都好。彷彿只有自己的時候,才能想透徹
Thumbnail
探索由小芝風花主演的感人日劇《GO HOME 警視廳身份不明者諮詢室》,溫情推理揭開死者身份之謎,每集都是一次觸動人心的旅程。
Thumbnail
GOB Go官方有提供net/rpc的RPC套件。此套件提供GOB的編/解碼,且支援TCP或HTTP傳輸方式。它可以在伺服器端註冊多個不同類型物件。 遠端存取的要求條件 方法的類型可輸出 方法的本體可輸出 方法必須要有兩個參數是輸出或內建 方法的第二個參數是指標型 方法的返回類型為
Thumbnail
新賽季新希望,每隻球隊都有自己的中心思想、歡呼口號、應援歌曲,然而不變的最終目標就是贏得年度總冠軍,在那之前所能做的、就是全力以赴,永不退縮。
原本的計畫是寫系列文,一天嗑一點,雖然完整影片約17小時,分批消化卻花了我近10天,現在回去看我第一天寫的草稿,編輯時間已經是半年前...。
親了,然後呢? 過了一兩分鐘姐姐似乎是回神過來,丟下一句妳先不要下車,接著關上我這邊的車門,回到駕駛座,我內心的OS:完了完了巴比Q了༼⁠⁰⁠o⁠⁰⁠;⁠༽ 「明天早上幾點來接妳?」 我???(⁠ʘ⁠ᗩ⁠ʘ) 「妳的機車不是停在公司那?親了我後就忘了?」 『不麻煩主管了,我可以搭計程車或者我
Thumbnail
今年FGO台服終於預計在年底進入2-7,又常常看到很多人說對中南美洲文化不熟, 因此想再把文章統整成一下成更適合作為遊戲補充資料的版本,希望大家在到時遊玩2-7時有更多樂趣。 第一篇基本上是以基礎知識為主,不太會有遊戲劇透。
Thumbnail
之前已經與大家談過讓我第一次挑戰就成功設計出有趣桌遊教具的「GO START」專案管理心法當中的 G、O、S,現在就來繼續分享 T、A、R、T。請容我再次強調,這是人人都適用的專案管理心法,上下兩篇一起看完後,你就會發現要掌握專案管理的要點沒有想像中那麼困難。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
Google Gemini 2.0 的超擬真人語音功能引發震撼,其 Native Audio OUTPUT 技術能模擬各種情緒、語速與停頓,應用層面廣泛,但同時也帶來行銷操控的隱憂。本文探討 Gemini 2.0 的優缺點、應用瓶頸與未來發展,並提醒企業主管及使用者需謹慎評估風險。
2024年底,回顧了過去兩年。 那天在山上跟竹說:不知道為什麼,我覺得這兩年對我來說是生命的一格刻度。 2023、2024這兩年發生了很多事,大三大四對很多人來說都是轉變的時間點,我也不例外。和小時候比起來,更多陌生未知的痛苦,但也有更多不可計量的快樂體驗。擁有更多更多的朋友,卻比過去知道如何與
跟著意志與心之所向行事,向來都是困難的。會考慮太多世俗的眼光,旁人的意見,所以保持安靜是必要的。不需要向其他人解釋與說明,自己想要達成的事,只需要自己努力便是。安靜地看著,用著力氣做著自己的事就好。有許多事,不需要明白地說明,因為能懂的只有自己。工作,家人,情人,都好。彷彿只有自己的時候,才能想透徹
Thumbnail
探索由小芝風花主演的感人日劇《GO HOME 警視廳身份不明者諮詢室》,溫情推理揭開死者身份之謎,每集都是一次觸動人心的旅程。
Thumbnail
GOB Go官方有提供net/rpc的RPC套件。此套件提供GOB的編/解碼,且支援TCP或HTTP傳輸方式。它可以在伺服器端註冊多個不同類型物件。 遠端存取的要求條件 方法的類型可輸出 方法的本體可輸出 方法必須要有兩個參數是輸出或內建 方法的第二個參數是指標型 方法的返回類型為
Thumbnail
新賽季新希望,每隻球隊都有自己的中心思想、歡呼口號、應援歌曲,然而不變的最終目標就是贏得年度總冠軍,在那之前所能做的、就是全力以赴,永不退縮。
原本的計畫是寫系列文,一天嗑一點,雖然完整影片約17小時,分批消化卻花了我近10天,現在回去看我第一天寫的草稿,編輯時間已經是半年前...。
親了,然後呢? 過了一兩分鐘姐姐似乎是回神過來,丟下一句妳先不要下車,接著關上我這邊的車門,回到駕駛座,我內心的OS:完了完了巴比Q了༼⁠⁰⁠o⁠⁰⁠;⁠༽ 「明天早上幾點來接妳?」 我???(⁠ʘ⁠ᗩ⁠ʘ) 「妳的機車不是停在公司那?親了我後就忘了?」 『不麻煩主管了,我可以搭計程車或者我
Thumbnail
今年FGO台服終於預計在年底進入2-7,又常常看到很多人說對中南美洲文化不熟, 因此想再把文章統整成一下成更適合作為遊戲補充資料的版本,希望大家在到時遊玩2-7時有更多樂趣。 第一篇基本上是以基礎知識為主,不太會有遊戲劇透。
Thumbnail
之前已經與大家談過讓我第一次挑戰就成功設計出有趣桌遊教具的「GO START」專案管理心法當中的 G、O、S,現在就來繼續分享 T、A、R、T。請容我再次強調,這是人人都適用的專案管理心法,上下兩篇一起看完後,你就會發現要掌握專案管理的要點沒有想像中那麼困難。