多个线程同时访问一个变量,可能造成的后果?

beijingshizi 2004-10-18 02:13:42

多个线程同时访问一个变量。会有什么后果?

int型,有什么后果?

char * 会有什么后果?

如果按照系统描述的:语句解释成指令之后,该操作只有一个指令就不会造成访问冲突,那这个语句包含指令的个数是怎么确定的,int型和char*有什么区别?或者其他的,dword ? float ? double ?

比如说:  
state = 0 ; 会解释成几个指令?  
strcpy( str , "sssss" ) ; 又会如何解释?

在不同的平台上结果也不同吧?
...全文
1144 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
icelight 2004-10-19
  • 打赏
  • 举报
回复
楼主对于CRITICAL_SECTION的两个方案, 我偏向于后一个方案. 以空间换时间.
oyljerry 2004-10-18
  • 打赏
  • 举报
回复
读没什么问题,写要注意同步
beijingshizi 2004-10-18
  • 打赏
  • 举报
回复
up
beijingshizi 2004-10-18
  • 打赏
  • 举报
回复
访问错误,同步错误等 的表现是什么?
JasonWright 2004-10-18
  • 打赏
  • 举报
回复
如果仅是读取的话,问题不大,如果是改变此变量的话,内存错误,计算错误,访问错误,同步错误等
kugou123 2004-10-18
  • 打赏
  • 举报
回复
如果又读又写,导致变量值的混乱。
beijingshizi 2004-10-18
  • 打赏
  • 举报
回复
一个读,一个写,会造成什么后果。

两个同时写,有什么后果?

会不会造成线程停止。

目前我遇到的问题是,压力测试后,运行十几个小时后线程挂死。

但我访问的是int,没有指针,我认为不至于把线程挂死,顶多值出现问题。请有经验的同仁确认一下。

还有一个问题,我用CRITICAL_SECTION ,有以下选择:

多个线程(不超过20)同时访问一个

声明几百个CRITICAL_SECTION 对象,但最多有这20个中的两个在等待,那种比较好?

个人偏重第一种。
DentistryDoctor 2004-10-18
  • 打赏
  • 举报
回复
对,只读的,不会有什么的。
快乐鹦鹉 2004-10-18
  • 打赏
  • 举报
回复
如果都是取的话,不会有什么严重的后果吧
DentistryDoctor 2004-10-18
  • 打赏
  • 举报
回复
首先是值的混乱。
对于指针一类的可能造成内存错误。
beijingshizi 2004-10-18
  • 打赏
  • 举报
回复
还有,同时访问,造成的后果?

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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