第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Ruby中使用頻道

在Ruby中使用頻道

Go
翻閱古今 2021-04-01 01:13:59
在Go編程語言中,您可以使用稱為“通道”的結構來發(fā)送消息。 http://golang.org/doc/effective_go.html#channels我很想在Ruby中使用類似的東西,尤其是對于IPC。我想要的偽代碼:channel = Channel.newfork do  3.times{ channel.send("foo ") }  exit!endThread.new do  3.times{ channel.send("bar ") }endloop do  print channel.recvend# ~> bar foo foo bar bar foo是否有任何可以像Ruby這樣工作的構造,庫或等效項?如果不是:構建這種抽象的最佳方法是什么?更新:為了闡明我從這些渠道中需要什么。一個用例:一些分叉的工人正在等待工作。它們都從相同的JobChannel讀取,并將結果報告給相同的ResultChannel。我需要的頻道很快寫入不阻塞,(消息發(fā)送)讀取執(zhí)行阻止,(消息接收)分叉之前不需要特殊處理,輕巧和簡單會很好。到目前為止,我玩過DRb,(與輕量級+緩慢+我的小腦袋有太多魔力相對)套接字,(UNIXSocket,TCPSocket ...套接字似乎有許多使用它們的方式。我在UNIXSockets上獲得了半工作的通道。如果您認為套接字有意義,那么我應該看一下哪些功能子集?)管道。(連接兩個以上的進程似乎并非易事)如果其中任何一項已經(jīng)是解決我的問題的理想技術,請?zhí)峁┙坛痰?,其中包含有關我的要求的更多重點信息。
查看完整描述

2 回答

?
精慕HU

TA貢獻1845條經(jīng)驗 獲得超8個贊

Go的消息傳遞是一種一流的構造,它僅通過并發(fā)(goroutines,tasklet,無論您要稱呼什么),才是一流的構造。使用廉價的并發(fā),阻止tasklet或協(xié)程不再是問題,并且阻止消息傳遞變得更加有意義。

如果這是Python,我會把您指向Stackless;在Ruby中,也許RevactorNeverBlock適合您?


查看完整回答
反對 回復 2021-04-26
  • 2 回答
  • 0 關注
  • 271 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號