如果已经调用了另一个线程,java不会调用静态方法
我有一个静态方法,如果另一个线程调用它,我想立即返回它
例如
public static void parseNetworkData() {
if(isRunning) {
return;
}
// get and cache network data
// for use
}
我真的不想同步这个方法,因为如果网络调用已经完成,我不希望其他线程也这样做
现在我不确定以下几点:
考虑到这是一个静态方法,定义/处理isRunning
的最佳方式是什么
我应该将其转换为实例方法吗
# 1 楼答案
使旗帜不稳定且静止
# 2 楼答案
这听起来很可疑,但你可以做到。方法是
static
对这种情况没有太大影响,但是无论怎样,都需要应用同步或并发支持对象来管理线程之间的交互。在这种情况下,java.util.concurrent.ReentrantLock
可以方便地提供您需要的: