Lock的简单使用

来源:互联网 发布:三星网络电视50寸 编辑:程序博客网 时间:2024/04/29 13:50

java中Lock的简单使用

public class Buffer {private int maxsize =10;private List<String> bufflist;private  Lock lock = new ReentrantLock();private Condition con1 = lock.newCondition();public Buffer(){bufflist = new ArrayList<>();System.out.println("缓冲器初始化完毕!");}public  void add(String name,String s){lock.lock();try {while(bufflist.size()==maxsize){System.out.println(name+"等待");con1.await();}bufflist.add(s);System.out.println(name+"生产了一块面包!剩余"+bufflist.size()+"个");con1.signalAll();} catch (InterruptedException e) {e.printStackTrace();}finally {lock.unlock();}}public   void delete(String name){lock.lock();try {while(bufflist.isEmpty()){System.out.println(name+"等待");con1.await();}bufflist.remove(0);System.out.println(name+"买走了一块面包!剩余"+bufflist.size()+"个");con1.signalAll();} catch (InterruptedException e) {e.printStackTrace();}finally {lock.unlock();}}}


0 0
原创粉丝点击