【问题标题】:Java - Advanced Concurrency Issue [duplicate]Java - 高级并发问题
【发布时间】:2015-09-24 13:29:35
【问题描述】:

我有两个线程 ThreadA (Main) 和方法 j()k(){...j()...} 和第二个线程 ThreadB。 ThreadA 随机调用方法k(),其中包括调用方法j()ThreadB随机调用方法j()

现在方法k()j()不能同时执行,因为它们共享变量。

如果ThreadA 当前未执行方法k(),我如何确保ThreadB 只能调用方法j()?而且ThreadB 将在ThreadA 执行完k() 之后执行j()

我阅读了有关同步关键字的信息,但它似乎只能涵盖一种方法。 (例如 ThreadX 和 ThreadY 都访问方法m())。

【问题讨论】:

标签: java multithreading concurrency


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    相关资源
    最近更新 更多