当多个控制线程共享相同的内存时,需要确保每个线程看到一致的数据视图。当一个线程可以修改的变量,其他线程也可以读取或者修改的时候,需要对这些线程进行 同步,确保它们在访问变量的存储内容是不是会访问到无效的值。
当一个线程修改变量时,其他线程在读取这个变量时可能会看到一个不一致的值。
两个或多个线程试图在同一时间修改同一变量时,也不要进行同步。考虑变量增量操作的情况,增量操作通常分解为以下3步:
(1)从内存单元读入寄存器。
(2)在寄存器中对变量做增量操作。
(3)把新的值写回内存单元。
如果改操作是原子操作,那么就不存在竞争。
线程同步(UNIX环境高级编程笔记)
最新推荐文章于 2020-04-09 20:00:11 发布