java - 线程死锁和同步

标签 java android multithreading thread-safety

我知道我需要适本地使用同步以避免使用多线程时出现死锁,但我想知道:

我是否需要同步修改变量的值检查变量,或者我只需要在修改时同步值,但当我检查变量时却没有?

最佳答案

关于死锁:Darkhogg 已经正确指出死锁是由于不正确的同步和工作流程造成的。

同步状态修改和状态观察:是的,您需要同步两者。输入同步方法时获得的对象锁的效果是,没有其他线程可以输入需要相同对象锁(在同一对象上同步)的相同或另一个同步代码块。也就是说,如果您不同步观察对象状态的代码,则该代码可能会与修改状态的同步代码同时执行,并且您可能会读取无效的对象状态。

关于java - 线程死锁和同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21362657/

相关文章:

java - 请推荐漂亮的 Java Swing 组件库

java - 单独声明并分配给最终变量 - Java

与其他语言相比,Java BufferedImage 到字节数组的转换太慢

multithreading - 互斥条件

java - HTTP 请求处理程序连接重置错误

java - Spring JPA 多对多持久性问题

android - BroadcastReceiver 监控连接的特定 USB 设备

android - 在另一个 View 中嵌入 ListView

java - 选项卡布局不会显示选项卡图标

c++ - 独立的 Windows 应用程序在焦点改变时挂起