线程1
1 /* 2 * 实现线程的第一种方法: 3 * 编写一个类,直接继承java.lang.Thread,重写run()方法 4 */ 5 public class XianCheng01 { 6 public static void main(String[] args) { 7 // 这里是主方法main方法,这里的代码属于主线程,在主栈中运行。 8 // 新建一个分支线程对象 9 MyThread t = new MyThread(); 10 // t.run();不会启动线程,不会分配新的分支栈。 11 // 启动线程 12 // start()方法的作用是:启动一个分支线程,在JVM中开辟一个新的栈空间,这段代码任务完成后,瞬间就结束了。 13 // 这段代码的任务只是为了开辟一块新的栈空间,只要新的栈空间开辟出来,start()方法就结束了,线程就启动了。 14 // 启动成功的线程会自动调用run方法,并且run方法在分支栈的栈底部。 15 // run方法在分支栈的底部,main方法在主栈的栈底部,run方法和main方法是平级的。 16 t.start(); 17 // 这里的代码还是运行在主线程中 18 for (int i = 0; i < 1000; i++) { 19 System.out.println("主线程--->" + i); 20 } 21 } 22 23 } 24 25 class MyThread extends Thread { 26 27 @Override 28 public void run() { 29 // 编写程序,这段程序运行在分支线程中(分支栈) 30 for (int i = 0; i <= 100; i++) { 31 System.out.println("分支线程--->" + i); 32 } 33 } 34 }