幾個小技巧幫你實現Golang永久阻塞

2022-09-22 00:33:07 字數 873 閱讀 5308

目錄

go 的執行時的當前設計,假定程式設計師自己負責檢測何時終止乙個 goroutine 以及何時終止該程式。可以通過呼叫 osdwczjd.exit 或從 main() 函式的返回來以正常方式終止程式。而有時候我們需要的是使程式阻塞在這一行。

一直等待直到 waitgroup 等於 0

package main

import "sync"

func main()

select{}是乙個沒有任何 case 的 select,它會一直阻塞

package main

func main()

}雖然能阻塞,但會 100%占用乙個 cpu。不建議使用

package main

func main()

}乙個已經鎖了的鎖,再鎖一次會一直阻塞,這個不建議使用

package main

import "sync"

func main()

系統訊號量,在 go 裡面也是個 channel,在收到特定的訊息之前一直阻塞

package main

import (

"os"

"syscall"

"os/signal"

)func main() )

package main

func main() //nil channel

注意上面寫的的**大部分不能直接執行,都會 panic,提示「all goroutines are asleep - deadlock!」,因為 go 的 runtime 會檢查你所有的 goroutine 都卡dwczjd住了, 沒有乙個要執行。你可以在阻塞**前面加上乙個或多個你自己業務邏輯的 goroutine,這樣就不會 deadlock 了。

幾個小技巧幫你處理電源平面

電源平面的處理,在pcb設計中占有很重要的地位。在乙個完整的設計專案中,通常電源的處理情況能決定此次專案30 50 的成功率,本次給大家介紹在pcb設計過程中電源平面處理應該考慮的基本要素。1 做電源處理時,首先應該考慮的是其載流能力,其中包含2個方面 a 電源線寬或銅皮的寬度是否足夠。要考慮電源線...

幾個shell小技巧

1.expr 命令 由於bash 是功能有限的直譯器,所以自身並沒有支援太多的算術運算,一切都是字串。所以如果涉及到算術運算,需要借助其他的工具,比如bc 功能比較強大的小工具 expr 和 算術擴充套件.expr 支援幾個常見的算術運算 取模 expr還支援常見的關係運算,比如 題外話 如果要想計...

幾個Blog小技巧

幾個blog小技巧 1.公告和計數器 填寫在靜態新聞 宣告中,目前 如下 其中 2.為blog 新增 天氣預報 功能 今日天氣 要更改預設省份的話,只要在city 的後面加就行了,不過那個省份在列表中要有。將 city 替換為 city 上海 就可以了,不過先看一下列表裡面有沒有上海這個城市,如果有...