Concurrent Programming in Java 才翻5頁就充滿疑惑的程式碼,大家幫忙分析分析
書上說這段程式碼解決了併發問題:但我橫看豎看還是有問題呀:
1、由於 move() 與 draw(Graphics g) 方法可能會被兩個執行緒同時呼叫,那它還是沒有解決,“當draw操作使用move方法呼叫前的y值和move方法呼叫後的x值繪製一個例子的圖形”。
2、protected final Random rng = new Random(); 為什麼定義為final?好處具體表現在什麼地方?
import java.util.Random; class Particle{ protected int x; protected int y; protected final Random rng = new Random(); public Particle(int inX,int inY){ x = inX; y = inY; } public synchronized void move(){ x += rng.nextInt(10) - 5 ; y += rng.nextInt(20) - 10; } public void draw(Graphics g){ int lx,ly; synchronized (this) {lx=x;ly=y;} g.drawRect(lx,ly,10,10); } } <p class="indent"> |
1、由於 move() 與 draw(Graphics g) 方法可能會被兩個執行緒同時呼叫,那它還是沒有解決,“當draw操作使用move方法呼叫前的y值和move方法呼叫後的x值繪製一個例子的圖形”。
2、protected final Random rng = new Random(); 為什麼定義為final?好處具體表現在什麼地方?
相關文章
- 有關java的unicode編碼的問題,大家幫忙JavaUnicode
- 乾貨|Java Concurrent -- FutureTask 原始碼分析Java原始碼
- 分頁Bean的同步問題,,請大家幫忙解決Bean
- 請高手幫忙分析一個JSP小程式的問題JS
- 大家幫幫忙,看看這個SQL怎麼寫!SQL
- 我的第一個entity Ejb就出錯!大家幫幫忙
- 請大家幫忙,關於儲存過程分頁的問題...謝謝儲存過程
- 急不理解的問題,大家幫幫忙,關於jive
- 一道java面試題,演算法,求大家幫忙解答!Java面試題演算法
- Java List 容器原始碼分析的補充Java原始碼
- 以太坊原始碼分析(5)accounts程式碼分析原始碼
- 一道面試題:大家幫忙解決面試題
- Java容器類框架分析(5)HashSet原始碼分析Java框架原始碼
- 幫幫忙吧!執行程式報錯:java.lang.verifyError行程JavaError
- jsp與xmlhttp在IE5.0中出現亂碼!請大家幫幫忙!JSXMLHTTP
- 記錄刪除後,資料塊空間不釋放,請大家幫忙看看分析一下
- 監聽Session事件不能編譯,大家幫忙看看Session事件編譯
- 一個jive的安裝問題,整整困了我5天.請大家幫忙解決
- 本人初學JAVA請各位幫幫忙...Java
- 讓人疑惑的Java程式碼 – Java那些事兒Java
- 讓人疑惑的Java程式碼 - Java那些事兒Java
- jf6.2初學者問題,請大家幫忙看看
- 有關單體模式設計的問題,請大家幫忙模式
- 誰有Concurrent Programming in Java這本書的電子版麼?Java
- 常用Java靜態程式碼分析工具的分析與比較Java
- 大家幫忙:apache每天生成一個日誌檔案?Apache
- 劍指offer—58.翻轉單詞順序列—分析及程式碼(Java)Java
- 網頁抓取如何幫助資料分析?網頁
- Paul Graham 主頁欄目翻譯:Programming FAQ
- 高手幫忙
- 高手幫忙!
- 熟悉ibatis的請幫幫忙!BAT
- [Flutter翻譯]Flutter和Dart中的程式碼分析和提示功能FlutterDart
- 紅黑樹核心程式碼分析(JAVA)Java
- Java程式碼中字串拼接方式分析Java字串
- 租金多少才算合理?智慧分析工具Sophon幫你預測房屋租金
- Java工程師就業前景分析Java工程師就業
- 求救~幫忙看一段程式碼是做什麼用的~