我知道這是如此manieth多線程線程。我已經閱讀了其中的很多。我已經閱讀了基本的線程教程。但沒有人回答我的問題,我有幾個問題。Java多線程unclarity
問題1:
當創建一個實現Runnable接口的類,我必須實現的run()方法。
如果我喜歡創建一個新的線程:
Thread t1 = new Thread();
它執行時調用start方法正確運行的方法?
現在我想讓我的線程t1在線程中執行另一個方法。
我面臨着以下情況:
tblGames = new JTable(new GamesTableModel(mainController.retrieveGames()));
我認爲這是骯髒的編碼。 我認爲這將是更好的實例化一個列表變量,像這樣:
List<Game> games = mainController.retrieveGames();
現在是什麼情況,該GUI加載(使用JPA) 所以我想運行在另一個線程表內容時凍結。我正在使用GamesTableModel來處理JTable的列等,因此我在新的GamesTableModel的構造函數中傳遞一個List。
我在哪裏創建一個新線程,是否將它創建爲MainController類?如果是,則爲
(關於方法如下所示:)
public List<Game> retrieveGames(){
List<Game> games = gameRepository.getGames();
return games;
}
我將如何去運行的方法,或者在不同的線程整個方法的內容,實際上,它會很好是有整個MainController在一個新的線程,以便它永遠不會凍結用戶界面,或者這是不可取的?
如果建議,我是否需要在UI中創建一個線程?然後導致這個問題,我將如何運行
MainController mainController = new MainController();
在一個新的線程?
我從來沒有在程序中正確實現線程,因此我的newb問題。
我從界面的run方法主要關注的是,內容是否適用於實現類權限中的所有線程?
我需要單獨的線程來執行幾種不同的方法。
現在的主要問題是使用新線程填充JTable的內容以獲取內容。
對不起長時間乏味的閱讀。並感謝你仍然在這裏。
我希望收到一些關於我的問題的說明。
'SwingWorker'可以幫助您解決所有問題。閱讀一些教程,這很簡單。 – 2011-03-04 09:03:54
同意鮑里斯在SwingWorker上。之後,在實踐中給自己一份Java併發:http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601/ref=sr_1_1?ie=UTF8&s=books&qid=1283782299&sr=8- 1 – 2011-03-04 09:05:42
感謝你們倆。 :)我現在讀關於它:) – 2011-03-04 09:47:18