【发布时间】:2017-01-20 11:00:16
【问题描述】:
我有一个具有某种状态的类的对象。
这个对象有两个方法(method1()和method2()),都在改变obj的状态。
method1() 已同步,但 method2() 未同步。
现在有两个线程,thread1 和 threads2 接近对象
->threads1 调用同步的method1()
-> thread2 调用了不同步的method2()。
我在测试结果中发现method2() 执行正确,即使method1() 持有锁。但是我想如果通过在方法上加上同步关键字来获得整个对象的锁,那么可以执行多少另一个方法。它应该等待。
非常感谢您的意见。
【问题讨论】:
-
你想错了。由于
method2没有同步,它不会尝试获取锁,如果锁已经被method1获取,则会阻塞。 -
一些代码会很好。
-
@Kayman 我刚刚发现它现在对我有用。谢谢
标签: java multithreading thread-safety synchronized