關於執行緒使用中的幾個疑問,請教大家!

jill000發表於2006-01-09
最近自己在寫個JAVA遊戲,其中對判斷何時需要執行緒同步的問題,很是困惑,具體是這樣的:

1. 當我想更新Jpanel皮膚時(在顯示動畫的主執行緒中呼叫repaint()),repaint()方法是否是立刻返回(即:實際更新操作是令開一個繪畫的執行緒,以執行皮膚的paintComponent()方法)?還是repaint()方法自身去呼叫paintComponent()方法,然後等其執行完後才返回的?如果repaint()方法是立馬返回的,即另外開一個執行緒來執行更新的話,那我在paintComponent()方法中要訪問的物件(同時在呼叫repaint()方法的主動畫執行緒中又要更新其狀態時),應該做同步處理吧?如果不是的話,就不必做同步處理了。

2. JAVA中的事件處理機制是否也是執行緒級別的,舉個例子:如果我在一個顯示動畫的主執行緒中要讀一個物件的屬性,而我在鍵盤上按一個鍵又能修改這個物件的屬性,像這種情況也需要進行執行緒同步吧?

就這麼多了,望高人指點一二,在下感激不盡!

相關文章