我只是有一个关于Java中的并发编程的简单问题。 例如, 我有一个NxN矩阵,并且矩阵的每一行都有相应的线程,如果每行中的线程之间没有交互,如果多个线程访问和修改单独的行是安全的(或正确的)的矩阵同时? 谢谢!Java互斥
Java互斥
回答
如果您只是在读取矩阵,它总是安全的。如果您正在进行写操作,但是一个线程只会读取和写入所分配的行,则这是安全的。只有当你从另一个线程写入的单元格读取线程时,你必须担心锁定。
唯一的问题可能是OP在评论中讨论的“主线程”:如果此线程读取值,这些值可能不是最新的。 – 2009-12-18 23:35:19
你是对的,虽然主线程正在访问树状图,但不能保证其他人不在做R/W。我会照顾这一点,并确保没有奴隶进入树形图,而主人在。 – user200340 2009-12-18 23:44:14
我只是有一个问题。 如果多个线程同时访问同步方法中的树形图,并且主线程正在等待以另一个同步方法访问树形图。如果有一个线程离开第一个方法,会发生什么情况,锁是否会返回并且对主线程可见,或者主线程是否只能看到锁,直到最后一个线程从第一个同步方法离开为止。 – user200340 2009-12-18 23:59:10
如果你有一个本地二维数组,而不是一个包装类,那么并发行访问应该没问题。只要你不读/写或写/写同一个内存位置,你没关系。
假设您可以保证任何线程都不会改变任何其他线程读取或变异的元素,也没有线程会更改矩阵的维度,这应该是安全的。
- 1. 与smp的Java互斥体
- 2. 互斥对象
- 3. 互斥问题
- 4. 使用互斥
- 5. 互斥理解
- 6. 使NSOperations互斥
- 7. 与互斥
- 8. Java中的分层互斥锁
- 9. 在Java中实现互斥体
- 10. Java中是否存在互斥锁?
- 11. java方法同步和读/写互斥
- 12. 相互排斥对
- 13. 同步和互斥
- 14. 互斥真相表?
- 15. jquery互斥点击
- 16. 实现互斥锁?
- 17. 与互斥项目
- 18. 为互斥事件
- 19. 互斥体机制
- 20. Oracle专栏互斥
- 21. C++等待互斥
- 22. 互斥锁和锁
- 23. 互斥与PHP 5.3.8
- 24. 互斥多进程
- 25. Node.js和互斥体
- 26. 互斥选择框
- 27. 互斥C#。如何系统识别互斥码
- 28. 在运行时选择互斥体或虚拟互斥体
- 29. 互斥不与.NET互斥锁类工作
- 30. 将非互斥变量重新编码为互斥变量
不是问题... – zedoo 2009-12-18 23:19:13
你在开玩笑吗,zedoo? – 2009-12-18 23:20:48
不,我不是在开玩笑。在OP提供的背景下,没有安全/正确的概念。 – zedoo 2009-12-18 23:23:35