千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:北京千锋IT培训  >  技术干货  >  Java技术干货  > 线程的run()和start()有什么区别?

线程的run()和start()有什么区别?

来源:千锋教育
发布人:syq
时间: 2022-11-07 14:28:51

  每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,run()方法称为线程体。通过调用Thread类的start()方法来启动一个线程。

  start() 方法用于启动线程,run() 方法用于执行线程的运行时代码。run() 可以重复调用,而 start() 只能调用一次。 start()方法来启动一个线程,真正实现了多线程运行。调用start()方法无需等待run方法体代码执行完毕,可以直接继续执行其他的代码;

线程的run()和start()

  此时线程是处于就绪状态,并没有运行。

  然后通过此Thread类调用方法run()来完成其运行状态, run()方法运行结束, 此线程终止。然后CPU再调度其它线程。

  run()方法是在本线程里的,只是线程里的一个函数,而不是多线程的。

  如果直接调用run(),其实就相当于是调用了一个普通函数而已,直接待用run()方法必须等待run()方法执行完毕才能执行下面的代码,所以执行路径还是只有一条,根本就没有线程的特征,所以在多线程执行时要使用start()方法而不是run()方法。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

依赖注入实现原理?

2023-06-06

一个bug的解决过程,让你明白阅读源码的重要性

2023-03-01

线程和进程区别

2022-11-23

最新文章NEW

如何实现跨域?说一下JSONP实现原理?

2022-11-17

什么是 Spring Boot?Spring Boot 有哪些优点?

2022-11-14

你了解过哪些同步器?请分别介绍下

2022-11-14

相关推荐HOT

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>