并发编程
并发编程的四个阶段
- 掌握基本的API,能够熟练的编写正确的多线程程序
- 熟读API源码,理解其实现的原理,并能够举一反三
- 了解java虚拟机的内存模型
- 了解操作系统对多线程的支持
进程与线程
进程
- 运行中的程序
- 进程是资源配的基本单位
- 进程中包含多个线程,线程共享进程资源
线程
- 线程是处理器调度的基本单位
- 状态
- 初始(NEW)
- 运行(RUNNABLE)
- 阻塞(BLOCKED)
- 等待(WAITING)
- 超时等待(TIME_WAITING)
- 终止(TERMINATED)
线程风险
- 线程安全性问题
- 多线程环境下
- 多个线程共享一个资源
- 对资源进行非原子性操作
- 活跃性问题
- 死锁
- 活锁
- 饥饿
- 高优先级吞噬所有低优先级的CPU时间片
- 线程永久堵塞在一个等待进入同步块的状态
- 等待的线程 永远不被唤醒
- 性能问题
参考自:<龙果学院-Java并发编程原理与实战>