您的位置:首页 > 理论基础 > 计算机网络

nagios监控网络设备

2014-11-13 18:09 309 查看
接上一节,回顾一下,锁的实现有一个缺陷:两个线程交替执行会死锁。现在我们来做另外一个双线程锁实现来解决这个缺陷:

public class ThreadLockImpl2 {

private volatile int flag = 0;

public void lock() {

int threadId = ThreadUtil.getCurrentId();

flag = threadId;

/**
* 如果没有另外一个线程重置flag,则等待。
**/
while(flag == threadId) {

}
}

public void unlock(){

}
}

 

这个锁实现的特点是,只要两个线程交替执行,则永远不会死锁。但是又会带来另外一个缺陷:如果一个线程单独顺序执行,则会死锁。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: