1: 多线程 (了解)
(1) 多线程:一个应用程序有多条执行门路
过程:正在执行的应用程序
线程:过程的执行单元,执行门路
单线程:一个应用程序只有一条执行门路
多线程:一个应用程序有多条执行门路
多过程的意义?
进步 CPU 的使用率
多线程的意义?
进步应用程序的使用率
(2)Java 程序的运行原理及 JVM 的启动是多线程的吗?
A:Java 命令去启动 JVM,JVM 会启动一个过程,该过程会启动一个主线程。B:JVM 的启动是多线程的,因为它最低有两个线程启动了,主线程和垃圾回收线程。(3) 多线程的实现计划 (本人补齐步骤及代码 把握)
A: 继承 Thread 类
B: 实现 Runnable 接口
(4) 线程的调度和优先级问题
A: 线程的调度
a: 分时调度
b: 抢占式调度 (Java 采纳的是该调度形式)
B: 获取和设置线程优先级
a: 默认是 5
b: 范畴是 1 -10
(5) 线程的管制 (常见办法)
A: 休眠线程
B: 退出线程
C: 礼让线程
D: 后盾线程
E: 终止线程 (把握)
(6) 线程的生命周期 (参照 线程生命周期图解.bmp)
A: 新建
B: 就绪
C: 运行
D: 阻塞
E: 死亡
(7) 电影院卖票程序的实现
A: 继承 Thread 类
B: 实现 Runnable 接口
(8) 电影院卖票程序出问题
A: 为了更合乎实在的场景,退出了休眠 100 毫秒。B: 卖票问题
a: 同票屡次
b: 正数票
(9) 多线程平安问题的起因 (也是咱们当前判断一个程序是否有线程平安问题的根据)
A: 是否有多线程环境
B: 是否有共享数据
C: 是否有多条语句操作共享数据
(10) 同步解决线程平安问题
A: 同步代码块
synchronized(对象) {须要被同步的代码;}
这里的锁对象能够是任意对象。B: 同步办法
把同步加在办法上。这里的锁对象是 this
C: 动态同步办法
把同步加在办法上。这里的锁对象是以后类的字节码文件对象 (反射再讲字节码文件对象)
(11) 回顾以前的线程平安的类
A:StringBuffer
B:Vector
C:Hashtable
D: 如何把一个线程不平安的汇合类变成一个线程平安的汇合类
用 Collections 工具类的办法即可。