不要通過共享內(nèi)存來通信,要通過通信來共享內(nèi)存

1、使用共享內(nèi)存的話在多線程的場景下為了處理競態(tài),需要加鎖,使用起來比較麻煩。另外使用過多的鎖,容易使得程序的代碼邏輯艱澀難懂,并且容易使程序死鎖,死鎖了以后排查問題相當(dāng)困難,特別是很多鎖同時存在的時候。 2、go語言的channel保證同一個時間只有一個goroutine能夠訪問里面的數(shù)據(jù),為開發(fā)者提供了一種優(yōu)雅簡單的工具,所以go原生的做法就是使用channle來通信,而不是使用共享內(nèi)存來通信。
標(biāo)簽:golang