汽车精品设计网站建设,it运维管理平台软件,互联网公司名字大全参考,手机分销网站公司#xff08;1#xff09;c的map、vector等容器以及go中的slice、map都不是线程安全的。
#xff08;2#xff09;线程安全#xff1a;多线程访问执行n次每次结果都是确定的
#xff08;3#xff09;保证线程安全#xff1a;同步
#xff08;4#xff09;c同步相关…1c的map、vector等容器以及go中的slice、map都不是线程安全的。
2线程安全多线程访问执行n次每次结果都是确定的
3保证线程安全同步
4c同步相关的互斥锁、条件变量、信号量、读写锁、原子操作关系为
1、互斥锁实现互斥即一个共享资源同时最多只能有一个线程访问
2、互斥锁 条件变量实现多线程同步
3、互斥锁 信号量实现多线程同步
4、读写锁互斥锁的升级版本。读的部分多线程可以并行访问写的部分同时最多只能有一个线程访问。
互斥不一定同步同步包含互斥
5go中也是通过互斥锁与slice或者map结合实现同步同时官方提供了sync.map差别为前者写操作优于后者后者读操作和删除操作优于前者。sync.map内部包含了两个字典read和dirty。
sync.map的读、写、删除都会经过read字典其中read的读操作是原子操作不需要加锁因此对于读操作很方便read的删除操作也很方便只需要标记删除不需要实际删除而写操作最终要作用在dirty上所以会浪费时间