2012-10-19 49 views

回答

1

所以我假設你的代碼是這樣的:

class ThreadTask implements Runnable { 
    public void run() { 
     while(true) { 
      ... 
     } 
    } 
} 

你可以做的是實現一個標誌:

class ThreadTask implements Runnable { 

    private volatile boolean shouldStop = false; 

    public void run() { 
     while(!shouldStop) { 
      ... 
     } 
    } 

    public void stopTask() { 
     shouldStop = true; 
    } 
} 

然後在主線程:

ThreadTask task = new ThreadTask(); 
Thread t = new Thread(task); 
t.start(); 
... 
task.stopTask(); 
t.join(); 
+0

我是否必須使用鎖定變量shouldStop –

+0

沒問題,我搜索了volatile的關鍵字。它正在照顧這一點。謝謝 –

+0

@Prannoy Mittal:代碼適合你嗎? – Tudor