2015-02-11 100 views
-5

我有一個普遍的問題。 我一直在閱讀一本Java書,並且遇到了一個使用線程的程序。書中指出,線程用於多處理。我想知道,如果我寫的:爲什麼需要Java線程?

Thread t=new Thread(new classname); 
t.start; 
//after it some GUI code to display the input received from user in run method 

和我重寫run方法,從用戶那裏得到輸入,然後,將它等待輸入,然後執行像開放框架GUI任務,否則將同時執行兩項任務。

+0

假設您已經創建了視頻軟件。它可以用於下載視頻以及同時查看和轉換。要在java中實現這個,線程是必需的。 – frunkad 2015-02-11 19:47:30

+0

使用Google搜索此問題。 – prime 2015-02-11 19:47:39

+1

標題中的問題與帖子正文中的問題非常不同。請澄清。 – abl 2015-02-11 19:49:19

回答

1

他們會同時發生。 (除非你使用鎖定或信號量來阻塞其中一個線程。)

如果gui線程依賴於另一個線程的輸入處理,則會出現競爭條件。所以你一定要阻止gui線程,直到另一個線程完成任何gui線程的需要。至於爲什麼需要線程,那麼,這是因爲任務可以同時完成,所以程序可以更快地完成他們的工作。

+1

*「所以你一定要阻止gui線程,直到另一個線程完成任何gui線程需要的生產」 - 不,不是,nada。您不應該主動阻止用戶界面,這會使您的應用程序無響應,並可能對用戶體驗產生不利影響。更好地使用某種回調,線程可以用來告訴UI它已經完成了主動阻塞UI線程的更遠點 – MadProgrammer 2015-02-11 20:20:11

+0

@MadProgrammer的確,我沒有想到用戶界面方面,只是2線程競爭的想法資源。感謝您指出了這一點。 – Kacy 2015-02-11 21:17:04

相關問題