public class Thread0 { public static void main(String[] args) { ThreadDemo t1=new ThreadDemo(); t1.start();//线程启动,并执行该线程的run()方法,main路径和线程交替执行 for(int i=0;i<60;i++){ System.out.println("main "+i+" "); } } } class ThreadDemo extends Thread{//存储线程要执行的代码 public void run(){ for(int i=0;i<60;i++){ System.out.println("线程 "+i+" "); } } }
运行结果:
main 0 main 1 main 2 main 3 main 4 main 5 main 6 线程 0 线程 1 线程 2 线程 3 线程 4 线程 5 线程 6 线程 7 线程 8 线程 9 线程 10 线程 11 线程 12 线程 13 线程 14 线程 15 线程 16 线程 17 线程 18 线程 19 线程 20 线程 21 线程 22 线程 23 线程 24 线程 25 线程 26 线程 27 线程 28 线程 29 线程 30 main 7 main 8 main 9 main 10 main 11 main 12 main 13 main 14 main 15 main 16 main 17 main 18 main 19 main 20 main 21 main 22 main 23 main 24 main 25 main 26 main 27 main 28 main 29 main 30 main 31 main 32 main 33 main 34 main 35 main 36 main 37 main 38 main 39 main 40 main 41 main 42 main 43 main 44 main 45 main 46 main 47 main 48 main 49 main 50 main 51 线程 31 线程 32 线程 33 线程 34 线程 35 线程 36 线程 37 线程 38 线程 39 线程 40 线程 41 线程 42 线程 43 线程 44 线程 45 线程 46 线程 47 线程 48 线程 49 线程 50 线程 51 线程 52 线程 53 线程 54 线程 55 线程 56 线程 57 线程 58 线程 59 main 52 main 53 main 54 main 55 main 56 main 57 main 58 main 59
1. 首先继承Thread类,然后重写Thread类的run()方法。
2. Thread类的子类的对象调用start()方法,然后虚拟机就会调用该线程的run()方法。
注意 :
当程序执行到start()方法时,线程启动,此时有两条执行路径,一条是主方法执行main方法,另一条是线程路径执行线程run()里的代码,两条路径交替执行(交替执行指抢夺cpu执行时间,所以每次执行结果都不同)