直接访问字段时是否可能出现死锁

时间:2011-05-02 11:36:01

标签: java

通常为了线程安全,我们使用synchronized(lock)访问该字段。

如果不使用synchronized(锁定)并直接访问该字段,在某些情况下是否会遇到死锁?

3 个答案:

答案 0 :(得分:4)

没有同步,就没有死锁,只有数据损坏和未定义的行为。

答案 1 :(得分:3)

当您使用错误(或没有)同步时,您可以获得任何类型的错误。

您只能通过访问没有synchronized块的字段来直接来解决僵局,但它可以轻松 >间接陷入僵局。

这意味着访问字段本身不会阻塞,但根据您之后的操作,它可能会导致一个不期望的状态,从而导致死锁。

答案 2 :(得分:0)

监察员关注互斥。

关于死锁问题 - 使用什么方法并不重要。更重要的是要满足某些conditions。无论您使用何种方法,除非满足这些条件,否则无法避免死锁。因此,即使您使用synchronized,除非满足某些条件,否则无法避免死锁。