多线程读取同一个内存数据会出错吗

来源:互联网 发布:淘宝村淘收费标准 编辑:程序博客网 时间:2024/06/01 07:36

当两个或多个线程同时对一块内存区域进行“只读”时,不会有问题,但如果发生“写”时,就会有问题,需要加锁。也就是多个线程访问某个数据没有问题,但如果访问同时可能修改该数据的话,就要加锁。


多线程是否可以同时读取同一内存变量?

多线程是否可以同时读取同一内存变量?只是对他进行读取不进行写入修改 那么在多线程中是否会因此而出错?
itljl2012-12-23 00:14读可以,修改不可以。
华玉欣2012-12-23 02:40可以,可以,可以,可以,可以,可以,可以,可以,可以,可以,可以,可以,可以,
ttyige2012-12-24 19:18   貌似我就经常 出错。。
0xff2012-12-24 19:58  
xyxyyy232012-12-24 20:50看看...............
yfz05742012-12-24 22:35刚确认过了,在多核多线程下,也不可能因为读内存而产生线程出错问题.
qq6171191422012-12-24 22:37    
风精灵2012-12-24 23:07看变量的类型,固定长度的就没问题(如:整数、日期等),非固定的不论读、写,都是要进行保护的(如:文本、字节集、各种数组等)
hpjyb2012-12-25 01:02顶下。。。
yfz05742012-12-25 08:06
引用
引用第8楼风精灵于2012-12-24 23:07发表的  :
看变量的类型,固定长度的就没问题(如:整数、日期等),非固定的不论读、写,都是要进行保护的(如:文本、字节集、各种数组等)  img: http://bbs.eyuyan.com/images/back.gif

8楼这个说法可有依据?多线程事关重大,你说的不会是易语言的多线程BUG吧,这个跟楼主的问题无关,请看修正版.并不是多线程本身的问题,而是易语言的BUG.
cx4217745572013-01-24 09:37可以,可以,
1005018822013-01-24 11:20
引用
引用第8楼风精灵于2012-12-24 23:07发表的  :
看变量的类型,固定长度的就没问题(如:整数、日期等),非固定的不论读、写,都是要进行保护的(如:文本、字节集、各种数组等)  img: images/back.gif


实际上,文本,字节集,只读不写都是固定的长度,长度值永远不会变,只读不写不会冲突的。还有数组,只要数组成员是固定,且所有成员都只读。完成1点问题都没有。

以上说的您没必要相信,自己花2分钟写点代码分别多线程测试就知道。
0 0
原创粉丝点击