a(ref int i){//i=?}b(){i=3;}主函数有个变量K,她执行的a函数~另一个线程不写了~mian(){a(K);}大概这样~能看懂就好了~
2 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
不一定。
多线程当中最忌讳的就是两个线程同时对同一个公共变量操作。
因为处理器调度机制的问题,你这个公共变量无论变化与不变化,都是正常的。
如果非要这么写,建议使用信号量,来保证两个线程读/写 i 的时候是互斥的。
示例:
Semaphore mutex = new Semaphore(1, 1); void threadA( ref int i) { mutex.WaitOne(); // 对 i 读/写 mutex.Release(); } void threadB( ref int i) { mutex.WaitOne(); // 对 i 读/写 mutex.Release(); } // 以上代码仅供参考以帮助理解信号量的用法。 |
- 2 回答
- 0 关注
- 100 浏览
添加回答
举报
0/150
提交
取消