并发:多个线程交替执行
并行:多个线程同时执行
3种方式
channel
通道
业务场景:编排/数据流/数据路由
结合 select 使用
弊端:会传递数据副本,影响性能
case outA <- data; // 不要用同一个地址,应该传递不同的值
Mutex
锁
业务场景:共享数据/缓存
atomic
原子级内存操作
业务场景:同步算法的实现
使用哪种方式
原则:使用可读性更好,更简单的方式
gc回收
回收没有引用的对象
并发:多个线程交替执行
并行:多个线程同时执行
3种方式
channel
通道
业务场景:编排/数据流/数据路由
结合 select 使用
弊端:会传递数据副本,影响性能
case outA <- data; // 不要用同一个地址,应该传递不同的值
Mutex
锁
业务场景:共享数据/缓存
atomic
原子级内存操作
业务场景:同步算法的实现
使用哪种方式
原则:使用可读性更好,更简单的方式
gc回收
回收没有引用的对象