golang chain關閉問題

2021-09-25 15:50:25 字數 688 閱讀 9735

func main() 

close(ch)

for

fmt.println(b)

}}

func

main()

close

(ch)

for v :=

range ch

}

如上面的例子,如果不close(ch),會報deadlock錯誤,

為什麼會死鎖?非緩衝通道上如果發生了流入無流出,或者流出無流入,也就導致了死鎖。或者這樣理解 go啟動的所有goroutine裡的非緩衝通道一定要乙個線裡存資料,乙個線裡取資料,要成對才行

range不等到通道關閉是不會結束讀取的。也就是如果 緩衝通道乾涸了,那麼range就會阻塞當前goroutine, 所以死鎖咯。

func

test()

}()var m map

[string

]int

m["stu"]=

100}

func

calc()

}func

main()

time.

sleep

(time.second *

10000

)}

oracle關閉問題

今天在連線資料庫的時候 出現這條錯誤 ora 01090 shutdown in progress connection is not permitted 提示資料庫已經關閉了,然後我用startup啟動,報了以下錯誤 ora 01081 cannot start already running o...

DataReader關閉的問題

sqlcommand在每次執行executenonquery 方法之後,內部會生成乙個空的datareader物件,該物件只有在資料庫連線關閉之後,才會被釋放掉,加上上邊提到的,在dbhelper類中資料庫連線物件是乙個靜態的全域性變數。因為在同時呼叫api進行資料查詢時,在第乙個查詢還未結束,資料...

Kettle Carte集群關閉問題

kettle carte命令列是沒有關閉的服務的命令的。一般,情況下,直接kill掉pid就是了。但是kettle開啟的程序好多個,如果乙個個kill,一方面比較麻煩,另外可能kill掉乙個pid之後,一看,又自動開啟了。命令列下,是可以通過以下命令直接kill掉所有kettle的程序的 ps au...