【发布时间】:2021-04-07 10:24:55
【问题描述】:
要求是,方法 A 中的相关代码不能在任何具有相同类的 Object 上并行执行。
下面的伪代码能做到吗?
private final Map<String, Object> simpleMutex = new HashMap<>();
public void A( final Object o)
{
final ThreadLocal<Object> myLock = new ThreadLocal<>();
synchronized ( simpleMutex )
{
myLock.set( simpleMutex.computeIfAbsent( o.getClass().getName(), className-> new Object() ) );
}
synchronized ( myLock.get() )
{
System.out.println("Executing A on " + o);
}
}
【问题讨论】:
标签: java parallel-processing thread-safety