我有一个同步方法,似乎在“使用”同步的时间明显长于应有的时间。看起来像;

public static synchronized void myMethod(MyParameter p) {
    //body (not expensive)
}

电话看起来像;
myMethod(generateParameter());

已知generateParameter()调用非常昂贵(需要很长时间)。我的想法是在执行myMethod期间generateParameter()类上的互斥体被阻塞了,这会发生什么?我发现要调试它是一个不同的问题,但这似乎正在发生。

最佳答案

那不可能首先执行generateParameter()调用,然后将其结果作为myMethod调用的参数,然后调用mutt。

是花费很长时间还是被无限期阻止? (僵局)

08-04 04:44