首页 热点资讯 义务教育 高等教育 出国留学 考研考公

多线程问题

发布网友 发布时间:2022-04-23 03:03

我来回答

2个回答

热心网友 时间:2023-07-14 17:18

你说的就是线程间的同步问题;
当我们设置一个变量时 如int a=3; 数据是在内存条中存储的;
当计算机去计算a+1=多少时,CPU会将内存中的数据读取到 CPU的高速缓存中(在CPU内部),然后再计算。并将计算后的值再写会内存中;

当多线程操作这个变量时,一个线程把他给改了(在CPU中,还未更新到内存中),另一个线程去读时,都取得内存条中的数据还是老的。所以要lock一下,让另一个线程无法操作!更新完你再去操作!
除了lock以外还有好多种线程同步方式,比如CreateEvent函数。。。百度一下相关资料学习下。线程同步也不难的!

有问题继续问~~~追问http://wenku.baidu.com/course/study/bc9102d8ce2f0066f5332296#83749a680203d8ce2f2496 http://wenku.baidu.com/course/view/471d6bd97f1922791688e803

热心网友 时间:2023-07-14 17:19

不同线程是异步的
假如p2比c2快
p2执行到put方法的时候会持有store对象
c2执行到get方法时发现store对象已经被持有了,会等待对象的释放
这两个线程会不断争抢store对象,所以每次结果都不同的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com