线程状态


线程状态6种:

start();Runaune可运行 ,销毁

获取锁失败,进入blocked -阻塞,获取锁成功后

等待:获得锁wait(long) 等待,时间到或notify()

时间到sleep(),时间到回到可运行

image-20240201102244658

代码演示:

getStatus 获取线程信息()

函数式编程

线程内源代码操作系统5种

正在执行cup叫执行,没分配到你叫就绪,(分配不到cup)Blocked

阻塞I/O ,blocked waiting timed waiting

image-20240201104442505

线程池核心参数:

7个参数:

corePoolSize:核心线程数目

maximumPoolsize:最大线程数目

核心线程+急救线程

keppmum POOLsize 最大线程数目

unit 等待时间单位

针对救急线程

workQueue

阻塞线程

thread Factory 线程工厂

可以起名字

hadler 拒绝策

threadpool.submit();

mythread2

 

 

 

sleep vs wait

共同点:wait(),wait(long) 和sleep(long) 的效果都是让当前线程cpu使用权,进入

阻塞状态。

方法归属不同:

wait()sleep(long) ,wait(long), 的效果·都是让线程展示放弃cpu使用权,进入阻塞主抓昂泰,

方法归属不同

1.sleep (long )是thread 静态方法

wait(),wait(long) 都是object 成员方法,每个对象都有

醒来时机不同

1.执行sleep(long) 和wait(long) 的线程斗湖在等待相应毫秒后醒啦。

2.wait(long) 和wait()还可以被notify 唤醒,wait()如果不换型就一直等待下去。

3.他们都可以被打断唤醒

锁特性不同:

1.wait 方法必须获得wait 对象的锁,而sllep 则无需操作

2.wait 方法执行后灰释放对象锁,允许其他线程获得该对象

3.而sleep 如果在spnchronized代码块被执行,并不会释放锁

 

 

thread,对象为t1,

t1.sleep() 进入等待不会释放锁

t1.wait() 进入等待会释放锁

t1.statrt()

 

用俩个线程对比:

showstatus显示状态方法

 

 

posted @   langpo  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示