线程同步与互斥

多个线程同时访问共享资源可能会冲突。比如两个线程都要把某个全局变量加1,这个操作需要三条指令完成 1 从内存读变量值到寄存器 2 寄存器的值加1 3 将寄存器的值写回内存 在“读取变量的值”和“把变量的新值保存回去“,这两步操作之间插入printf调用,它会执行write系统调用进内核,为内核调用别的线程 提供了一个很好的时机。在一个循环中重复上述操作几千次,就会观察到访问冲突的现象 举一个例子:
相关文章
相关标签/搜索