首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java 之多线程 LOCK兑现(二)

2012-12-21 
java 之多线程 LOCK实现(二)接上一节,回顾一下,锁的实现有一个缺陷:两个线程交替执行会死锁。现在我们来做

java 之多线程 LOCK实现(二)

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

public class ThreadLockImpl2 {    private volatile int flag = 0;    public void lock() {        int threadId = ThreadUtil.getCurrentId();        flag = threadId;       /**       * 如果没有另外一个线程重置flag,则等待。       **/       while(flag == threadId) {       }     }     public void unlock(){     }}

?

这个锁实现的特点是,只要两个线程交替执行,则永远不会死锁。但是又会带来另外一个缺陷:如果一个线程单独顺序执行,则会死锁。

热点排行