通道_(編程)

在計算中 ， 通道 （ channel ） 是通過消息傳遞進行進程間通信和同步的編程模型 。 作爲一個流 ， 消息可以經由通道發送 ， 另一個進程或線程能夠接收它已經引用的經由通道發送的消息 。 通道的不同實現 ， 可以沒有緩衝區也可以有緩衝區 ， 消息傳遞相應的可以是同步的也可以是異步的 。 通道是併發的進程演算方式的基礎 ， 並起源於通信順序進程 （ CSP ） ， 它是併發的形式模型 ， 在CSP的無緩衝區通道中 ， 發送者不能傳送消息 ， 直到接收者準備好接受它 ， 稱爲同步消息傳遞 ， 這種行爲也被形象的稱爲 “ 約會 ” （ rendezvous ） 。 通道已經用在了很多CSP派生語言中 ， 比如occam和Limbo編程語言 （ 通過了Newsqueak和Alef語言 ） 。 通道還用於貝爾實驗室Plan 9的libthread ， 以及用於Stackless Python和Go編程語言 。