4
是否有像this one這樣的函數。 除非,當你做:Haskell單程`dupTChan`
寫入oldChan
newChan = dupTChanOneWay oldChan
任何寫入newChan
,而不是周圍的其他方式?
是否有像this one這樣的函數。 除非,當你做:Haskell單程`dupTChan`
寫入oldChan
newChan = dupTChanOneWay oldChan
任何寫入newChan
,而不是周圍的其他方式?
我實際上認爲這是可能的 - 沒有路由線程。它不完全要求的數據結構 - 一個實際的TChan - 但它確實產生了一個結構,你可以從「兩個來源」讀取,但你可以在之間獨自編寫。
這個概念很簡單。只需複製你的初始TChan。現在,也創建一個新的,新鮮的TChan。現在,您可以從dup'd chan orElse
中讀取新的chan - 這會爲您提供一個「輸出」通道,可以有效地合併您的兩個輸入通道。現在,寫入初始通道寫入兩者,寫入新通道專門寫入新的合併「通道」。
你可以有幾個通道和一個線程來完成路由。由於某種原因,這是不可接受的嗎? –
其實,我剛開始這樣做。我只是想知道是否有更優雅的方式。 – PyRulez
這是一個有趣的問題。經過一番思考,我不認爲這可以通過TChan來完成,因爲它們目前是結構化的。但是,您可以在自己的模塊中使用這個附加功能來定義自己的'TChan'類型和操作 - 如果您對此感興趣,則不應該太難。 –