前端之家收集整理的这篇文章主要介绍了
带有昂贵参数的Java同步方法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个似乎“使用”同步的同步
方法比它应该显着更长.它看起来像;
public static synchronized void myMethod(MyParameter p) {
//body (not expensive)
}
电话看起来像;
myMethod(generateParameter());
其中generateParameter()已知是非常昂贵的(需要很长时间)调用.我的想法是,在执行generateParameter()时,myMethod类上的互斥锁被阻塞了,这是怎么回事?我发现它是一个不同的调试问题,但这似乎正在发生.
那不可能;首先执行generateParameter()
调用,然后将其结果作为myMethod
调用的参数给出,然后myMethod
调用将
获取互斥锁.
它需要很长时间,还是无限期阻止? (僵局)
原文链接:https://www.f2er.com/java/126686.html