int i=
0;i<
10000;i++){ list.add(i);}SyncList syncList =
new SyncList(list);Thread writerS =
new Thread(
new Runnable() { @
Override public void run() {
for (
int i=
0;i<
10000;i++){ syncList.put(i); } }});Thread reader1S =
new Thread(
new Runnable() { @
Override public void run() {
for (
int i=
0;i<
10000;i++){ syncList.
get(i); } }});Thread reader2S =
new Thread(
new Runnable() { @
Override public void run() {
for (
int i=
0;i<
10000;i++){ syncList.
get(i); } }});
long begin1 = System.currentTimeMillis();writerS.start();reader1S.start();reader2S.start();
try { writerS.
join(); reader1S.
join(); reader2S.
join();}
catch (InterruptedException e) { e.printStackTrace();}System.
out.println(
"SyncList take "+(System.currentTimeMillis()-begin1) +
"ms");
结不雅:
RWLockList take 248msRWLockList take 255msRWLockList take 249msRWLockList take 224msSyncList take 351msSyncList take 367msSyncList take 315msSyncList take 323ms
可见读写锁切实其实是优于纯碎的互斥锁
总结
内置锁最大年夜长处是简洁易用,显示锁最大年夜长处是功能丰富,所以能用内置锁就用内置锁,在内置锁功能不克不及知足刹那在推敲显示锁。
关于两种锁,今朝接触到的就是这么多,总结不到位之处,迎接拍砖。
【编辑推荐】
- Java线程池的理论与实践
- Node.js对于Java开辟者而言是什么?
- 基于Python和JavaScript编写物联网温度计法度榜样
- Prepack——JavaScript代码优化对象
【义务编辑:seeker TEL:(010)68476606】
推荐阅读
关于Web Workers你需要了解的七件事
介绍Web Workers许可你在后台运行JavaScript代码,而不会阻拦web用户界面。Web Workers可以进步网页的┞符体机能,还可以加强用户体验。Web Workers有两种风格 ——专用Web Wo>>>详细阅读
本文标题:Java多线程之内置锁与显示锁
地址:http://www.17bianji.com/lsqh/35064.html
1/2 1