執行緒等待兩種方法的喚醒的效率比較
一直認為無鎖比有鎖快,效能更高,可是以下這個執行緒等待測試結果,卻跟自己想得不一樣:
針對以上測試結果,想看看各位道友的看法
public class CallResult { private volatile boolean noFinish = true; public boolean isNoFinish() { return commandIsFinish; } public void setNoFinish(boolean noFinish) { this.noFinish= noFinish; } } CallResult callResult = new CallResult(); // .... 把callResult放到佇列,讓佇列另一端的執行緒去處理 /* 1. 無鎖等待方式,等待佇列另一端的執行緒把isNoFinish設值為false */ while(callResult.isNoFinish) { Thread.yield(); } /* 2. 鎖等待方式, 等待佇列另一端的執行緒notify(). 測試結果這種方式效能更高*/ synchronized (callResult) { try { callResult.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } <p class="indent"> |
針對以上測試結果,想看看各位道友的看法
[該貼被abaddoncoder於2015-04-19 14:12修改過]
相關文章
- Java 多執行緒基礎(六)執行緒等待與喚醒Java執行緒
- 工作執行緒的喚醒及建立(19)執行緒
- 多執行緒-多執行緒兩種方式的圖解比較及區別執行緒圖解
- 多執行緒——虛假喚醒執行緒
- 多執行緒-生產者消費者之等待喚醒機制執行緒
- 執行緒虛假喚醒問題剖析執行緒
- 執行緒、開啟執行緒的兩種方式、執行緒下的Join方法、守護執行緒執行緒
- 從 JDK 原始碼角度看執行緒的阻塞和喚醒JDK原始碼執行緒
- java 執行緒安全問題,解決執行緒安全問題——同步程式碼塊,同步方法,Lock鎖,Object類中wait方法,notify方法。等待喚醒案例。Java執行緒ObjectAI
- 多執行緒-生產者消費者之等待喚醒機制程式碼優化執行緒優化
- python清空字典的兩種方法比較Python
- 同步篇——事件等待與喚醒事件
- Android 判斷當前執行緒是否是主執行緒的兩種方法Android執行緒
- java執行緒建立的兩種方式Java執行緒
- 【java】【多執行緒】建立執行緒的兩種常用方式(2)Java執行緒
- App相互喚醒的幾種方式APP
- 【MyBatis】幾種批量插入效率的比較MyBatis
- 建立執行緒的4種方法 and 執行緒的生命週期執行緒
- 破除java神話之執行緒按優先順序喚醒Java執行緒
- python執行系統命令四種方法比較Python
- python多執行緒爬蟲與單執行緒爬蟲效率效率對比Python執行緒爬蟲
- Oracle提高SQL執行效率的三種方法ITOracleSQL
- Java多種方法實現等待所有子執行緒完成再繼續執行Java執行緒
- 主執行緒等待所有其他執行緒執行完畢,然後再繼續執行主執行緒的邏輯,有以下幾種方法可以實現:執行緒
- 訪問vector元素方法的效率比較
- Java多執行緒13:讀寫鎖和兩種同步方式的對比Java執行緒
- COPA 獲利分析的兩種方式比較
- 模擬主執行緒等待子執行緒的過程執行緒
- Thread 中的 join() 方法的作用是呼叫執行緒等待該執行緒執行完後,再繼續執行thread執行緒
- android保持服務不休眠(持續執行)以及喚醒螢幕的方法Android
- java 多執行緒之使用 interrupt 停止執行緒的幾種方法Java執行緒
- Oracle中spool命令實現的兩種方法比較-入門Oracle
- [Java併發]執行緒的並行等待Java執行緒並行
- 【 Thread】建立執行緒的2種方法thread執行緒
- 終止java執行緒的2種方法Java執行緒
- Java建立多執行緒的一種方法Java執行緒
- JAVA中執行緒建立的2種方法Java執行緒
- Java 多執行緒同步的五種方法Java執行緒