【发布时间】:2012-11-10 09:07:31
【问题描述】:
我有两种方法:a() 和 b()。虽然我对多个线程同时访问任何方法感到满意(这是可取的),但我不希望任何线程在执行b() 时进入a()。
我该怎么做?
编辑 1
假设有 4 个线程,Thread 1 正在访问 A()。我想要的是所有 4 个线程都不应该使用B()。
【问题讨论】:
-
在
a()末尾调用b() -
我不认为这是被问到的。
-
在使用
b()时不允许执行线程a()。b()是否修改底层资源?您在寻找ReadWriteLock 吗? -
I do not want any threads to enter a() while b() is being executed意味着 如果线程A正在访问a(),那么你不希望线程B使用b()? 这就是你想要的吗?如果是,请告诉我们您到底想做什么。也许我们可以帮助你。我闻到了,您的代码中发生了一些可疑的事情 -
那么当
a()被执行时呢?是否允许任何其他线程进入b()?
标签: java multithreading synchronized