创建线程的方式

创建线程有四种方式:

(1)继承Thread类重写run()方法,调用start()方法启动线程。

(2)实现Runable接口,实现run()方法。

(3)实现Callable接口,实现call()方法。

 

 (4)线程池创建线程。

为什么要使用线程池:减少线程的上下文切换带来的损耗、减少创建线程和销毁线程带来的损耗、充分利用CPU资源。

 实现Runable接口和实现Callable接口创建线程的区别:

实现Runable接口实现的run()方法没有返回值,因此这种方法不能获取线程执行的返回值,而实现Callable接口实现的call()方法有返回值,可以搭配FutureTask调用FutureTask.get()可以获取线程执行的结果。

启动线程为什么要执行start()方法而不是执行run()方法的原因:

执行start()方法才是启动线程,线程启动后会由该线程去执行run()方法。而直接调用run()方法只是有主线程去执行,相当于执行一个普通方法。

 

posted @   程序员_YHB  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示