国际惯例,先贴出代码
package jiankong; import java.util.Date; public class jiankong { public static void main(String [] args) { MyThread thread = new MyThread(); thread.start(); try { Thread.sleep(10000); System.out.println("捕获未成功!"); Thread.interrupted(); } catch (InterruptedException e) {System.out.println("主线程已死!");}//这里不明白catch的含义 System.out.println("检测主线程是否死亡!"); //thread.interrupt(); } } class MyThread extends Thread { boolean flag = true; //Thread flag = false; public void run() { while (flag) { System.out.println("+++ " + new Date() + "+++"); try { sleep(1000); } catch (InterruptedException e) { return; } } } }
最近写的,不过多线程好多生疏的地方啊,就上面的这个例子,原来的代码到是会,然后我修改了下,就再想,既然Thread是主线程,那我能不能中断主线程呢,我就在catch那里测试,按道理来说,如果主线程被中断的话,应该会执行的啊,可是调试的时候就是不出。。。。郁闷!!!自学果然吃力不讨好
后面附上之前练习的一个小程序:
public class hello { public static void main(String args[]) { runner r = new runner(); //r.run(); Thread t = new Thread(r); t.start(); for (int i = 0; i < 100; i++) { System.out.println("main " + i); } } } //class runner { class runner implements Runnable { public void run() { for (int i = 0; i < 100; i++) { System.out.println("runner " + i); } } }