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
下面小編舉一個例子,監聽進程被關閉後觸發的事件。
監聽信號,使用
signal.Notify(c, os.Interrupt)
第一個參數表示接收信號的channel
第二個及後面的參數表示設置要監聽的信號,如果不設置表示監聽所有的信號。
完整例子如下,本例在Ubuntu14.04的服務版測試通過。
Ctrl+c的效果如圖:
Kill進程的效果如圖
簡單的例子,希望對您有幫助。
wxgzh:ludong86