通常为了线程安全,我们使用synchronized(lock)访问该字段。
如果不使用synchronized(锁定)并直接访问该字段,在某些情况下是否会遇到死锁?
答案 0 :(得分:4)
没有同步,就没有死锁,只有数据损坏和未定义的行为。
答案 1 :(得分:3)
当您使用错误(或没有)同步时,您可以获得任何类型的错误。
您只能通过访问没有synchronized
块的字段来直接来解决僵局,但它可以轻松 >间接陷入僵局。
这意味着访问字段本身不会阻塞,但根据您之后的操作,它可能会导致一个不期望的状态,从而导致死锁。
答案 2 :(得分:0)
监察员关注互斥。
关于死锁问题 - 使用什么方法并不重要。更重要的是要满足某些conditions。无论您使用何种方法,除非满足这些条件,否则无法避免死锁。因此,即使您使用synchronized,除非满足某些条件,否则无法避免死锁。