学习要点笔记---多线程_2
来源:互联网 发布:法律法规数据库系统 编辑:程序博客网 时间:2024/05/16 15:33
8、暂停线程
a) 暂停线程意味着需要使用的时候还可以恢复线程。在JAVA中,可以使用suspernd()方法暂停线程,使用resume()方法恢复线程的执行
b) Suspend() 和 resume()
c) 缺点,两者使用的时候会造成资源的独占问题!!!
i. 对于同一个对象,thread1首先进入加锁的线程,并且执行了suspend方法,于是该线程就被锁定了,同时thread2无论是否设置了name = “a”,但是thread1永远不出了,thread2就无法执行
i. 第二种常见的死锁独占的问题:
1. 循环中不断打印,对于println()方法
a) Suspend之后就会独占这把锁,导致不能打印出main ends!!!!!
2、去除线程中的打印方法:
d) 缺点2:不同步问题
9、Yield方法
a) Yield方法的作用是放弃当前的cpu资源,将他让给其他的任务去占用cpu执行事件,但是放弃的事件不确定,有可能刚刚放弃,就立马又获得了cpu时间片
b) 尝试获取yield放弃cpu时间片的事件:
10、 线程优先级:
a) 优先级越高的线程得到的cpu资源较多,也就是cpu优先执行优先级较高的线程对象中的任务。设置优先级有助于帮“县城规划器”确定下一次选择哪一个线程有限制性
b) 设置优先级使用setPriority()方法。源码如下:
c) 优先级分为1~10个优先级,小于1或者大于10,JDK就会抛出异常
i. 使用三个常量来预置定义优先级的值:
d) 线程优先级的继承特性:
i. 线程的优先级同样具有继承性,比如A线程启动B线程,则B线程的优先级与A是一样的
ii. 优先级具有继承性,在main中创建调用启动线程,所以其中的线程优先级继承于main的,main的改变后后面的优先级也会改变
e) 优先级具有规则性:
- 学习要点笔记---多线程_2
- Java学习笔记(多线程_2)
- 学习要点笔记---多线程_1
- Swift学习笔记_2
- autolayout学习笔记_2
- EasyUI学习笔记_2
- ZigBee学习笔记_InitBoard()_2
- ZigBee学习笔记_HalDriverInit()_2
- Java 回顾笔记_多线程_2
- Struts学习笔记要点
- HBase笔记:学习要点
- javascript 要点学习笔记
- Linux学习笔记_常用操作_2
- proxy学习笔记(动态代理)_2
- LoadRunner学习笔记(脚本开发_2)2
- 云计算核心技术剖析学习笔记_2
- oracle 11g 学习笔记 11_2
- 黑马程序员-java学习笔记-高新技术_2
- verilog 的model的输入输出黄金规则
- JAVA之JDK环境配置(JAVAC不是内部命令或外部命令)
- 基于多尺度深度网络的单幅图像深度估计
- 蓝桥杯 振兴中华(DFS深度优先遍历)
- Keepalived安装与配置
- 学习要点笔记---多线程_2
- c/c++ 缓冲输入和非缓冲输入
- 安卓 单例模式 Singleton 传递简单参数
- 浅谈Linux发行版之间的联系和区别
- JSON的解析
- javascript函数声明与函数表达式
- Java常用8大排序算法
- 数据库 Oracle设置口令到达终止时间后的宽限天数
- 最小生成树(普利姆算法、克鲁斯卡尔算法)(逻辑理解小结)