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

自各儿实现的java lock

2012-10-29 
自己实现的java lock在做一个ajax web推送功能的时候碰到一个问题。 如果多个用户同时访问List,或者Map中的

自己实现的java lock
    在做一个ajax web推送功能的时候碰到一个问题。 如果多个用户同时访问List,或者Map中的同一条数据的时候,如果对数据进行插入或者排序,就会出现并发问题。为了避免这个问题查阅了 java.util.concurrent 里面的一些类。发现没有将锁对象公开的实现类。 所以自己就尝试写一个!

实现代码

Lock  接口实现

LinkedQueue<Message> queue = new LinkedQueue<Message>();try{queue.fullyLock();//对队列排序或者插入排序的时候 锁定 takeLock 和   putLock}finally{queue.fullyUnlock();}



基本思路:如果一个线程获得锁,其他线程再获取该锁时,会挂起该线程,并将线程放入一个等待队列。待线程锁释放的时候再去检查等待队列,出队。并激活线程

热点排行