start():该方法可以启动多线程
run():该方法仅在一条线程执行
下面来看看实验代码及实验:
package com.xxx.abc; //创建线程方式一:继承Thread类,重写run()方法,调用start开启线程 public class Thread1 extends Thread{ @Override public void run() { //run方法线程体 for (int i = 0; i < 200; i++) { System.out.println("我在看代码----"+i); } super.run(); } public static void main(String[] args) { //main线程,主线程 //创建一个线程对象 Thread1 testThread1=new Thread1(); //调用start()方法开启线程 testThread1.start(); for (int i = 0; i < 200; i++) { System.out.println("我在学习多线程-----"+i); } } }
可以看到代码已实现多线程,两个线程中的内容交替输出。
下面测试run():
package com.xxx.abc; //创建线程方式一:继承Thread类,重写run()方法,调用start开启线程 public class Thread1 extends Thread{ @Override public void run() { //run方法线程体 for (int i = 0; i < 200; i++) { System.out.println("我在看代码----"+i); } super.run(); } public static void main(String[] args) { //main线程,主线程 //创建一个线程对象 Thread1 testThread1=new Thread1(); //调用start()方法开启线程 testThread1.run(); for (int i = 0; i < 200; i++) { System.out.println("我在学习多线程-----"+i); } } }
将start()修改为run()后执行效果:
可以看到程序按单线程执行,在第一部分输出完毕后再接着输出第二部分。
测试完毕。