博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程优先级
阅读量:6631 次
发布时间:2019-06-25

本文共 794 字,大约阅读时间需要 2 分钟。

线程优先级:

线程在同时争抢cpu资源的时候,如果没有设置优先级执行顺序是比较乱的。如果设置了优先级则当线程碰撞在一起的时候,优先级高的就会先执行。

不设置优先级代码示例:

设置优先级代码示例:

线程的优先级只有在线程碰撞在一起的时候才能看出效果,需要在执行次数较多的情况下就能明显看出来。执行次数少比较难看出效果,因为线程碰撞到一起的几率比较小。

 

在实现接口来创建线程的方式中,不能直接拿到maxmin值,需要用数字代替或者用Thread类调用maxmin值。数字10代表max,数字1代表min

  代码示例:

wait方法:

wait方法是让线程进入等待状态,wait方法的参数里可以设置等待的时间,设置了等待时间后,只要超过设置的时间就会解除等待状态继续往下执行和sleep有点相似之处,不过进入wait的等待状态,被激活不会抛异常就是了。但是如果不设置等待时间的话,则会无限制的等待下去,也就是会进入无时间等待状态。

 

notify方法:

notify方法是用来激活进入等待状态的线程,此方法只能激活最开始进入等待状态的那个线程。

 

notifyAll方法:

notifyAll方法也是用来激活进入等待状态的线程,不过此方法能够激活所有进入等待状态的线程。

 

 

线程应用例题之买馒头:

想要买馒头首先需要消费者、店铺、还有做馒头的厨子,所以我们需要三个类,其中厨子和消费者是线程,店铺则是对象。厨子要做馒头,但是这个厨子有点懒做完馒头就去睡觉了,但是不工作会被叫醒的。店铺里有将厨子做好的馒头添加到店铺里的功能,还有提供消费者购买的功能。消费者则只需要一个劲的购买和激活线程就可以了。

  厨子类:

店铺类:

消费者类:

运行结果:

本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1976650,如需转载请自行联系原作者

你可能感兴趣的文章
a版本冲刺第五天
查看>>
Arduino示例教程超声波测距实验
查看>>
Linux中chkconfig使用介绍
查看>>
二进制方式快速安装MySQL数据库
查看>>
查询指定库中所有表
查看>>
Flash AS3 Loader的一些总结
查看>>
45个纯 CSS 实现的精美边框效果【附在线演示和源码】【下篇】
查看>>
js的逻辑 OR 运算符- ||
查看>>
[SQL Server]一次执行资料夹内的.sql 指令码
查看>>
【计算机视觉】粒子滤波跟踪
查看>>
hadoop集群扩展
查看>>
操作系统诊断
查看>>
[Compose] 19. Leapfrogging types with Traversable
查看>>
Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
查看>>
2015年度新增开源软件排名TOP100
查看>>
BZOJ 2456: mode(新生必做的水题)
查看>>
View State
查看>>
自旋锁spinlock解析
查看>>
【java.lang.UnsupportedClassVersionError】版本不一致出错
查看>>
JVM Debugger Memory View for IntelliJ IDEA
查看>>