start() 是让程序中间觉得什么时候去执行
{
妈妈说:start倒垃圾去
start说:等会去,
第二天才去
}
run() 程序运行到他啦就立刻去执行
{
老婆说:run倒垃圾去
run说:好嘞,
立刻就去了
}
import org.junit.Test;
/*
*多线程编程的两种方式
*
* 继承Thread(本类使用的方法)
* 实现Runnable接口
*
* */
public class MyThread extends Thread {
public void run() {
System.out.println("创建的线程");
}
/*
* 如果直接执行run方法是同步(主线程调用),start方法是让系统来找一个时间来调用run方法(子线程调用)
* 使用run的方法就可以不要用让线程睡一秒钟了
* 使用start的方法,如果不让线程睡上一秒,输出的结果则会为零.....
* 下面的三个类是最好的证明
*/
@Test
public void test() throws InterruptedException {
MyThread myThread = new MyThread();
myThread.start();
System.out.println("代码的执行结果与代码的顺序无关");
Thread.sleep(1000);
}
@Test
public void test1() {
MyThread myThread = new MyThread();
myThread.run();
System.out.println("如果是直接执行run方法,肯定是按代码顺序执行的,因为是通过主线程调用的");
}
}