Java-高级并发问题
我有两个线程,Java-高级并发问题,java,multithreading,concurrency,Java,Multithreading,Concurrency,我有两个线程,ThreadA(Main),方法是j()和k(){…j()…},还有第二个线程,ThreadB。ThreadA随机调用方法k(),其中包括调用方法j()ThreadB随机调用方法j() 现在方法k()和j()不能同时执行,因为它们共享变量 如果ThreadA当前未执行方法k(),如何确保ThreadB只能调用方法j()?而且ThreadB将在ThreadA完成执行k()后执行j() 我读过关于synchronized关键字的文章,但似乎它只能涵盖一种方法。(例如ThreadX和Th
ThreadA
(Main),方法是j()
和k(){…j()…}
,还有第二个线程,ThreadB
。ThreadA随机调用方法k()
,其中包括调用方法j()
ThreadB
随机调用方法j()
现在方法k()
和j()
不能同时执行,因为它们共享变量
如果ThreadA
当前未执行方法k()
,如何确保ThreadB
只能调用方法j()
?而且ThreadB
将在ThreadA
完成执行k()
后执行j()
我读过关于synchronized关键字的文章,但似乎它只能涵盖一种方法。(例如ThreadX和ThreadY都是访问方法
m()
)。我将使用同步语句和内部锁的机制。你可以读到它。您可以使用指向同一对象的同步语句同步这两种方法。请与我们共享您的代码。此外,锁是可重入的: