@zhuanxu
2018-01-08T17:50:47.000000Z
字数 417
阅读 1637
一、基础概念
Java并发编程原理与实战
并发4阶段
- 熟练掌握并发相关的api,完成并发编程
- 熟读api源码,掌握原理
- 理解java虚拟机的内存模型
- 操作系统对并发的支持
线程与进程区别
- 进程是资源分配的基本单位
- 进程中包含多个线程,线程之间共享进程资源
- 线程是处理器调度的基本单位
书籍
《Java并发编程实战》
《Java并发编程的艺术》 方腾飞
《深入理解Java虚拟机》 周志明
线程状态转换
线程创建方式
- 继承Thread类
- 实现Runnable接口
- 匿名内部类的方式
- 带返回值的线程
- 定时器(quartz)
- 线程池的实现
- Lambda表达式实现
- Spring实现多线程
代码地址
线程风险
安全性问题
- 多线程环境
- 多个线程共享同一个资源
- 对资源进行非原子性操作
活跃性问题
饥饿
- 高优先级吞噬所有低优先级的CPU时间片
- 线程被永久堵塞在一个等待进入同步块的状态
- 等待的线程永远不被唤醒
如何尽量避免饥饿问题
- 设置合理的优先级
- 使用锁来代替synchronized