线程同步问题

cstao110 2006-08-05 02:57:16
"多线程环境下,几个线程同时执行一个函数,导致数据的混乱"
我对这句话不是很理解,大家能否具体举个例子来说明为什么会导致数据混乱.
我希望大家能从机器内部执行机制上来分析原因。解释清楚立刻结帖.谢谢.
...全文
129 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cstao110 2006-08-05
  • 打赏
  • 举报
回复
多个线程同时访问共享数据导致数据混乱,这我能够理解,主要使因为内存与寄存器之间数据更新不同步造成。

我的问题出现的背景是这样的
在一个进程当中,假设类A有多个实例在多个不同的线程里面同时执行A的函数.由于多个A对象共享代码区(即多个类实例实际调用同一个函数),为了数据保证同步,就需要在定义A函数的时候写入一些同步代码.

这就是我提出这个问题的原因,即为什么要在A函数写入同步代码.
Hide1984 2006-08-05
  • 打赏
  • 举报
回复
我觉得改成"多线程环境下,几个线程对同一数据段进行操作,导致数据的混乱"比较贴切
和进程同步的原理差不多
操作系统中有临界区和临界资源的说法,1次仅允许1个进程使用,即本次未使用完之前是不允许别的使用者使用的,这就是临界资源,而包含临界资源的代码就是临界区,如果同时对临界区进行操作而又不加控制的话,那么会导致数据的异常.

和这个类似的经典问题是飞机场售票系统同步问题

不指导楼主对这样的回答啊满意

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧