多线程之Thread中的方法

本文详细解析了Java线程从创建到结束的整个生命周期,包括run与start的区别、线程状态转换、线程同步与调度机制,以及常用线程控制方法如sleep、yield、join、interrupt的使用场景和原理。

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

1、首先创建方法时会执行run方法

run就是线程运行的代码块

2、start 方法让线程处于就绪状态,抢占到CPU资源后就会处于运行状态

start 与 run方法对比,start让线程处于就绪状态,run是要执行的代码,那么能否直接调用run呢?答案是可以的,但是此时和一般类new出对象后调用方法没有两样,Thread.currentThread()放到run中就会发现和当前线程ID一致,调用start后打印出的线程id就会改变

3、currentThread获取当前线程信息

4、sleep线程休眠,参数就是要休眠的时间,但不会释放资源(锁)

5、wait (Object中方法)线程阻塞,线程会放入到waitSet集合中,直到调用notify/notifyAll

6、yield当前线程进入就绪状态,重新竞争CPU资源,不常用

7、join等待调用线程的时间(结束)

8、interrupt改变标识状态,具体实现要看线程中如何实现,如在循环中调用

9、interrupted清除线程的中断状态,连续调用两次会返回false

10、isInterrupted线程是否已中断

11、enumerate 将活动线程复制到指定数组,SDK注释中建议该方法仅用于监视和调试

12、线程的优先级、线程名称等比较好理解就不多说了

13、Runnable、 Future、Callable

Callable获取Future对象,具体可看下submit中的调用过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值