Javaweb---线程(2)

在这里插入图片描述
currentThread:获取当前线程的实例 相当于this
但是对于lambda runnable的方式不能用this
lambda指向的是lambda表达式对应的接口的实例
runnable指向的是runnable的实例

Thread的几个常见属性:
线程执行前:
在这里插入图片描述
线程执行后:
在这里插入图片描述

中断线程:

让一个线程结束.
情况一:任务执行完毕 结束(run执行完)
情况二:任务执行一半 结束(调用interrupt)
第一种:
在这里插入图片描述
第二种:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
以下两个动作是同时执行的 至于哪个让线程停下来的我们就不得而知了
1.(在sleep或者wait中阻塞)这个操作本质上是给当前线程触发一个异常 针对异常的处理是catch内部的事情
2.(不在sleep或者wait中阻塞)会将 Thread.currentThread().isInterrupted()置为true

说说这个sleep:
在这里插入图片描述
关于线程休眠的本质:
在这里插入图片描述

interrupt的两种方式的区别:
第一种:当中断之后 上面的标记位会被修改
在这里插入图片描述
第二种:仅仅判断标记位 不会修改
在这里插入图片描述
在这里插入图片描述
线程等待:
[抢占式执行]主线程和新线程之间是并发执行的 谁先执行谁后执行说不准
在这里插入图片描述
在这里插入图片描述
虽然我们无法控制谁先执行 谁后执行 但是我们可以控制谁先结束[线程阻塞]

join方法: 控制哪个线程先结束 执行join方法的线程就会阻塞
第一种:线程之间时并行执行的.
在这里插入图片描述
在这里插入图片描述
第二种:线程之间时串行执行的 第一种走完第二种走
在这里插入图片描述
在这里插入图片描述
但是主线程是最后阻塞的
在这里插入图片描述
在这里插入图片描述
线程的状态:JAVA中线程的状态是通过enum表示的
在这里插入图片描述
isAlive(是否存活):除了New和Terminated其他状态都表示线程存活(PCB是否存活)
几种状态的关系图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值