Java - 高级并发问题

时间:2015-09-24 13:29:35

标签: java multithreading concurrency

我有两个主题ThreadA(主要),方法j()k(){...j()...}以及第二个主题ThreadB。 ThreadA随机调用方法k(),其中包括调用方法j()ThreadB随机调用方法j()

现在方法k()j()无法在共享变量的同时执行。

如果ThreadB当前没有执行方法j(),如何确保ThreadA只能调用方法k()?此外ThreadB j()将在ThreadA执行k()后执行m()

我读到了synchronized关键字,但它似乎只能涵盖一种方法。 (例如,ThreadX和ThreadY都是访问方法 switch($condition){ case "options": blah(); break; } )。

1 个答案:

答案 0 :(得分:0)

我会使用synchronized语句和内部锁的机制。你可以阅读它here。您可以使用指向同一对象的synchronized语句同步这两种方法。