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

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