
如果把线程安全定义为允许多个goroutine同时去读写,那么golang 的channel 是线程安全的。不需要在并发读写同一个channe时加锁。
golang中的channel (推荐学习:go)
channel用于goroutine之间的通信
如果不用channel,使用共享全局变量的方式,需要加锁
立即学习“go语言免费学习笔记(深入)”;
// synchornized 同步 // golang中的 sync包中有互斥锁 var lock sync.Mutex // mutex 互斥 lock.Lock() // 上锁 // 多个goroutine同时对相同的数据进行修改 lock.Unlock() // 解锁
使用同步锁并发效率会很低
BJXSHOP购物管理系统是一个功能完善、展示信息丰富的电子商店销售平台;针对企业与个人的网上销售系统;开放式远程商店管理;完善的订单管理、销售统计、结算系统;强力搜索引擎支持;提供网上多种在线支付方式解决方案;强大的技术应用能力和网络安全系统 BJXSHOP网上购物系统 - 书店版,它具备其他通用购物系统不同的功能,有针对图书销售而进行开发的一个电子商店销售平台,如图书ISBN,图书目录
channel主要用于goroutine通信和解决主线程等待goroutine执行结束再退出的问题
basic concept of channel
本质上是一个FIFO的数据结构-队列
线程安全,不需要加锁
channel是有类型的,如字符串channel chan string,只能保存string数据









