TODO:Go語言goroutine和channel使用

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

qrcode_for_gh_6bb1f39ae99c_258
發佈了59 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章