如何用程序控制線程的生命週期?
不能用suspend() , resume(), stop(), 因爲這三個是線程不安全的,已經被jdk淘汰。
可以用以下的代碼模式來控制線程的結束。
TestThread.java
package com.thread;
public class TestThread {
public static void main(String[] args) {
ThreadEnd t = new ThreadEnd();
new Thread(t).start();
for(int i =0 ; i< 100 ; i++){
if (i==50) {
t.stopMe();
}
System.out.println("main() is running");
}
}
}
class ThreadEnd implements Runnable{
boolean bflag = true;
public void stopMe(){
bflag = false;
}
public void run() {
while(bflag){
System.out.println(Thread.currentThread().getName()+"is running !");
}
}
}
注意:即在線程內部設置標誌位 bflag 來控制線程的結束。