我有2
關於Thread
的問題,我只是想澄清一些事情。隨着下面的代碼:銷燬/停止線程
public class MyThread implements Runnable {
Boolean StopThread = false;
Boolean DontLoop = false;
public MyThread(){}
public void Stop(Boolean stopThread){
this.StopThread = stopThread;
}
public void ThreadDontLoop(Boolean dontLoop){
this.DontLoop = dontLoop;
}
public void run(){
if(dontLoop){
while(true){
if(StopThread){
break; //Terminate WhileLoop, This will Stop and destroy the Thread also
}
}
}else{
//Does this mean the Thread will be destroy/terminate after this condition?
}
}
}
爲了開始:
MyThread myThread = new MyThread();
Thread thread = new Thread(myThread);
thread.start();
爲了啓動線程,但不循環
ThreadDontLoop(false);
thread.start();
爲了停止線程
myThread.Stop(true);
現在,據此LINK,這就是要停止的線程。
所以我的第一個問題是,在上面給出的代碼中,如果我調用ThreadDontLoop(false);
,然後thread.start();
,這是否意味着線程將啓動,但在條件之後,線程將被停止並銷燬?
第二個問題是,比方說,我打電話thread.start();
,然後我呼籲myThread.Stop(true);
停止WhileLoop和銷燬線程。 我沒有關注如何鏈接停止線程,因爲我將有不同的條件,但我相信我想停止線程的邏輯是正確的?
除非您需要'StopThread'或'DontLoop'爲'null',否則請使用boolean而不是'Boolean'。 –
@AndyTurner - 謝謝!我不知道,現在我正在尋找「布爾」和「布爾」之間的區別。謝謝! – lopi
@lopi boolean是一個基元,只能是真或假。布爾是一個對象的引用,默認情況下它是空的。 –