建议采用变量的方式停止线程
public class Thread005 extends Thread {
private volatile boolean flag = true;
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
while (flag) {
}
}
public void stopThread() {
this.flag = false;
}
public static void main(String[] args) {
Thread005 thread005 = new Thread005();
thread005.start();
try {
Thread.sleep(3000);
thread005.stopThread();
} catch (Exception e) {
}
}
}
当在主线程当中执行到t1.join()方法时,就认为主线程应该把执行权让给t1
class Main
{
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i <10 ; i++) {
System.out.println("子线程...");
}
}
});
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 0; i <10 ; i++) {
System.out.println("main线程.....");
}
System.out.println("主线程销毁....");
}
}