先把代码摆到这。。。忘了再来看
package heng.java.Thread; public class MyThreadIsAlive { public static void main(String[] args) { Thread t = new Runner6(); t.start(); for(int i=0; i<50; i++){ System.out.println("MainThread: "+i); } } } class Runner6 extends Thread { public void run(){ System.out.println(Thread.currentThread().isAlive());//当前线程是否还活着 for(int i=0; i<50; i++){ System.out.println("SubThread: "+i); } } }
===================================================
package heng.java.Thread; /** * 同一个线程对象可以吊起两个线程,一个线程执行完,才开始执行另一个线程 * @author haley * */ public class MyThread { public static void main(String[] args) { // TODO Auto-generated method stub Runner2 r = new Runner2(); Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); } } class Runner2 implements Runnable { public void run(){ for(int i=0; i<30; i++){ System.out.println("No. "+i); } } }
======================================================
package heng.java.Thread; public class MyThread1 { public static void main(String[] args) { Runner3 r = new Runner3(); Thread t = new Thread(r); t.start(); } } class Runner3 implements Runnable { public void run() { for(int i=0; i<30; i++){ if(i%10==0 && i!= 0){ try{ Thread.sleep(5000); }catch (InterruptedException e){ e.printStackTrace(); } } System.out.println("No. "+i); } } }
========================================================
package heng.java.Thread; public class MyThreadJoin { public static void main(String[] args) { Runner5 r = new Runner5(); Thread t = new Thread(r); t.start(); try { t.join(); } catch (InterruptedException e) { e.printStackTrace(); } for(int i=0; i<50; i++){ System.out.println("主线程:"+i); } } } class Runner5 implements Runnable { public void run() { for(int i=0; i<50; i++){ System.out.println("SubThread: "+i); } } }
=========================================================
package heng.java.Thread; public class MyThread2 { public static void main(String[] args) { Runner4 r = new Runner4(); Thread t = new Thread(r); t.start(); for(int i=0; i<100; i++){ if(i%10==0 && i>0){ System.out.println("in thread main i="+ i); i++; } } r.shutDown(); //t.stop(); System.out.println("Thread main is over"); } } class Runner4 implements Runnable { boolean flag = true; int i=0; public void run() {//run()方法一结束,线程就结束 while(flag == true){ System.out.println(" "+i); i++; if(flag == false){ System.out.println("为什么这句还能执行?"); } } } public void shutDown(){ flag = false; } }