线程start()和run()方法的区别?

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方法,肯定是按代码顺序执行的,因为是通过主线程调用的");
    }
}

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值