我有點問題。我有一個Java應用程序,當它啓動時,它需要製作六個或許七個線程,等待發生某種事件(即用戶按下一個按鈕)。下面是我如何製作這些線程的一個例子。問題是,我打開我的任務管理器只是爲了看到我所有的四個cpu核心都處於100%(大約從20開始),只要我關閉我的應用程序,一切都恢復正常。我對多線程仍然很陌生,我知道我在這裏犯了一些併發罪,但是我希望對如何糾正這種情況有所瞭解。讓線程等待
new Thread (new Runnable() { public void run()
{
while (true)
if (doSomeFunction)
{
myFunction();
doSomeFunction = false;
}
} }).start();
// Somewhere else in the code
doSomeFunction = true;
我想或許等待,並通知將是正確的做法呢?
編輯:只是爲了澄清,這無關與Swing組件供電。相反,這是基於腳本的事件,我不希望某些腳本函數阻塞,而是在完成後臺任務時立即返回。
你的任務是幹什麼的?如果我是誠實的,產生線程根據一些UI觸發事件簡單地使它們活躍起來並不會有多大意義。一旦用戶點擊了一個按鈕,你能不能產生線程來完成工作? – dannywartnaby 2010-09-28 16:38:28
多數民衆贊成我最初是這樣的,但我得到的理解,使我需要的線程和重用他們會更好。 – Dave 2010-09-28 16:50:18