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進程

下面小編舉一個例子,監聽進程被關閉後觸發的事件。事件

監聽信號,使用channel

signal.Notify(c, os.Interrupt)im

第一個參數表示接收信號的channelgoroutine

第二個及後面的參數表示設置要監聽的信號,若是不設置表示監聽全部的信號。通信

完整例子以下,本例在Ubuntu14.04的服務版測試經過。

Ctrl+c的效果如圖:

Kill進程的效果如圖

簡單的例子,但願對您有幫助。

wxgzh:ludong86

相關文章
相關標籤/搜索