處理Golang 中的股票行情停止行為
在Golang 中使用股票行情通道時,調用stop() 將暫停通道但不會關閉它。這種行為可能會引發有關如何正確處理這種情況的問題。
在程式碼範例中,建立了一個程式碼並啟動了一個 goroutine 以從其通道檢索值。經過設定的時間後,goroutine 仍在運行,因為通道尚未關閉。因此,出現了問題:有效地應對這種情況。
使用第二個通道實現股票代碼控制
一個解決方案是採用第二個通道作為控制機制。這種方法解決了問題並提供了一個更受控制的環境。
在答案中提供的程式碼中,引入了函數 Every。它需要兩個參數:持續時間和在每個價格變動時執行的函數。在 Every 函數中,建立了一個新的股票代碼以及停止通道。
啟動了一個 goroutine 來處理股票代碼。 Goroutine 使用 select 語句來監視股票行情通道中的事件和停止通道中的停止操作訊號。當Every函數被呼叫時,它會傳回停止通道。
在main函數中,Every函數用於調度一個任務每秒運行一次。經過一定的時間間隔後,停止通道將收到訊號以終止股票代碼。結果,goroutine 優雅退出,程序結束。
以上是如何正確處理 Golang 中的 Ticker Stop 行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!