TODO:Go語言goroutine和channel使用併發
goroutine是Go語言中的輕量級線程實現,由Go語言運行時(runtime)管理。使用的時候在函數前面加「go」這個單詞做爲關鍵詞,也是與普通函數的區別了。在函數前面加go關鍵字就能夠建立一個新的goroutine進行併發執行。函數
go hello()測試
channel是Go語言提供的goroutine間的通訊方式,咱們能夠使用channel在兩個或多個goroutine之家傳遞消息。channel使用的關鍵字是用「chan」,聲明一個傳遞類型爲int的channel:線程
var ch chan int進程
下面小編舉一個例子,監聽進程被關閉後觸發的事件。事件
監聽信號,使用channel
signal.Notify(c, os.Interrupt)im
第一個參數表示接收信號的channelgoroutine
第二個及後面的參數表示設置要監聽的信號,若是不設置表示監聽全部的信號。通信
完整例子以下,本例在Ubuntu14.04的服務版測試經過。
Ctrl+c的效果如圖:
Kill進程的效果如圖
簡單的例子,但願對您有幫助。
wxgzh:ludong86