线程中run()方法和start()方法区别,为什么在调用start()时,会执行run()方法

本文详细解释了Java中线程的启动方法start()与线程执行方法run()的区别。start()方法使线程进入就绪状态并允许操作系统调度执行run()方法,而直接调用run()方法则是在当前线程中执行,无法实现多线程并发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.线程中run()方法和start()方法区别
run方法是线程中的一个普通方法体,可以重复调用。是线程里的一个函数,不是多线程,直接调用run方法,相当于调用一个普通函数,执行路径还是一条, 根本没有多线程的特征。
而start方法是Thread中的线程启动方法,只能调用一次,且调用之后,线程就是就绪状态,时间片获取之后即可执行run方法中的内容。 start方法来启动一个线程,真正实现了多线程运算,调用start方法无需等待run方法运行完成,可以直接继续执行其他代码;run方法执行完毕,线程终止,然后让出时间片,继续执行其他线程。
2.为什么在调用start()时,会执行run()方法?为什么不能直接调用run()方法
调用start方法可以启动线程,并且使得线程进入就绪状态,而run方法只是thread的一个普通方法,还是在主线程中执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值