作家
登录

Java多线程之内置锁与显示锁

作者: 来源: 2017-05-08 15:01:10 阅读 我要评论

int value) { writeLock.lock(); try { list.add(value); } finally { writeLock.unlock(); } }}class SyncList { private List list; public SyncList(List list){this.list = list;} public synchronized int get(int k){ return (int)list.get(k); } public synchronized void put(int value){ list.add(value); }}
private Lock lock = new ReentrantLock();  private Condition condition = lock.newCondition(); condition.await();//this.wait();  condition.signal();//this.notify();  condition.signalAll();//this.notifyAll();

读写锁测试代码:

List list = new LinkedList();for (int i=0;i<10000;i++){    list.add(i);}RWLockList rwLockList = new RWLockList(list);//初始化数据Thread writer = new Thread(new Runnable() {    @Override     public void run() {        for (int i=0;i<10000;i++){            rwLockList.put(i);        }    }});Thread reader1 = new Thread(new Runnable() {    @Override     public void run() {        for (int i=0;i<10000;i++){            rwLockList.get(i);        }    }});Thread reader2 = new Thread(new Runnable() {    @Override     public void run() {        for (int i=0;i<10000;i++){            rwLockList.get(i);        }    }});long begin = System.currentTimeMillis();writer.start();reader1.start();reader2.start();try {    writer.join();    reader1.join();    reader2.join();} catch (InterruptedException e) {    e.printStackTrace();}System.out.println("RWLockList take "+(System.currentTimeMillis()-begin) + "ms");

同步锁测试代码:

List list = new LinkedList();for (	
				
			

  推荐阅读

  关于Web Workers你需要了解的七件事

介绍Web Workers许可你在后台运行JavaScript代码,而不会阻拦web用户界面。Web Workers可以进步网页的┞符体机能,还可以加强用户体验。Web Workers有两种风格 ——专用Web Wo>>>详细阅读


本文标题:Java多线程之内置锁与显示锁

地址:http://www.17bianji.com/lsqh/35064.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)