读书人

自各儿实现的java lock

发布时间: 2012-10-29 10:03:53 作者: rapoo

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

实现代码

Lock 接口实现

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



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

读书人网 >编程

热点推荐