Java synchronized statement是一种保护数据资源不被多个线程同时访问的方法。可以通过将同步作为关键部分或互斥锁对象X来完成。
class MyClass
{
int a;
object X = new object();
void Foo()
{
synchronized(X)
{
a++;
}
}
}
有没有办法对X进行试锁而不是像这样的锁?
void Foo()
{
if(try_synchronized(X)==true)
{
a++;
}
}
不幸的是,this Q&A说ReentrantLock是另一种方式,但 synchronized 关键字是在Java VM下实现的,所以这个问题是不同的。