channel和共享内存有什么优劣势?

参考解析

答案:

Go的设计思想就是, 不要通过共享内存来通信,而是通过通信来共享内存,前者就是传统的加锁,后者就是Channel。
共享内存是在操作内存的同时,通过互斥锁、CAS等保证并发安全,而channel虽然底层维护了一个互斥锁,来保证线程安全,但其可以理解为先进先出的队列,通过管道进行通信。
共享内存优势是资源利用率高、系统吞吐量大,劣势是平均周转时间长、无交互能力。
channel优势是降低了并发中的耦合,劣势是会出现死锁。