简介
为什么要编写并发程序(使用多线程)?
- 简化异步代码,简化复杂系统的开发。
- 充分发挥多处理器的强大计算能力。
单线程与多线程
单线程
优势:直观且简单
多线程
提高资源利用率、公平性、便利性
- 发挥多处理的强大能力
- 建模的简单些
- 异步事件简化处理
- 响应更灵敏的用户界面
线程的风险
- 如果没有同步,共享变量引起的读操作等安全性问题
- 活跃性问题:死锁、饥饿、活锁
- 性能问题
上下文频繁切换,CPU 时间更多花费在线程的调度上而不是运行上。
同步机制抑制编译器优化,使内存缓存区中的数据无效,以及增加共享内存纵向的同步流量。
线程的一些应用
- AWT:创建线程管理用户界面
- Swing:创建线程管理用户界面
- Timer:创建线程来执行延迟任务
- Servlet:创建线程池并调用方法
- RMI:创建线程池并调用方法