Ton*_*ony 10 java multithreading locking synchronized
如果我想确保用Java独占访问对象,我可以这样编写:
...
Zoo zoo = findZoo();
synchronized(zoo)
{
zoo.feedAllTheAnimals();
...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法检查对象当前是否被锁定?如果另一个线程正在访问,我不希望我的线程等待zoo.如果zoo没有锁定,我希望我的线程获取锁并执行synchronized块; 如果没有,我希望它跳过它.
我怎样才能做到这一点?
您无法使用Java中嵌入的低级本机同步来完成此操作.但您可以使用并发程序包中提供的高级API来完成此操作.
Lock lock = new ReentrantLock();
....
//some days later
....
boolean isLocked = lock.tryLock();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5536 次 |
| 最近记录: |