线程中run()和start()有什么区别呢?
在日常开发中,多线程的定义时--都需将逻辑代码写在run方法体中
但是启动线程需使用start()方法,为什么会这样呢?下文笔者将一一道来,如下所示
但是启动线程需使用start()方法,为什么会这样呢?下文笔者将一一道来,如下所示
run()和start()方法简介
start() 方法用于启动线程 run() 方法用于执行线程任务 run() 可以重复调用,而start()只能调用一次
start()方法简介
start()方法来启动一个线程,真正实现了多线程运行 调用start()方法无需等待run方法体代码执行完毕 可以直接继续执行其他的代码; 此时线程是处于就绪状态,并没有运行 然后通过此Thread类调用方法run()来完成其运行状态 run()方法运行结束, 此线程终止 然后CPU再调度其它线程。
run()方法简介
run()方法是在本线程里的 是线程里的一个函数 而不是多线程的 如果直接调用run(),其效果就是一个普通函数运行 直接调用run()方法必须等待run()方法执行完毕才能执行下面的代码 所以执行路径还是只有一条,根本就没有线程的特征 所以在多线程执行时要使用start()方法而不是run()方法。
run()和start()方法的区别
区别1: 功能不同 start()启动多线程 run()执行业务逻辑 区别2:是否阻塞 start()不阻塞 run()阻塞-属于顺序执行的函数
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。