16.10 本章小结
16.10 本章小结
本章主要介绍了Java
的多线程编程支持:
- 简要介绍了线程的基本概念,并讲解了线程和进程之间的区别与联系。
- 本章详细讲解了如何创建、启动多线程,并对比了三种创建多线程方式之间的优势和劣势,也详细介绍了线程的生命周期。
- 本章通过示例程序示范了控制线程的几个方法,
- 还详细讲解了线程同步的意义和必要性,并介绍了三种不同的线程同步方法:
- 同步方法、
- 同步代码块,
- 显式使用
Lock
控制线程同步。
- 本章也介绍了三种实现线程通信的方式:
- 使用同步监视器的方法实现通信、
- 显式使用
Condition
对象实现线程通信, - 使用阻塞对象实现线程通信。
此外,本章还介绍了线程组和线程池,由于线程属于创建成本较大的对象,因此程序应该考虑复用线程,线程池是在实际开发中不错的选择.
本章最后介绍了线程相关的工具类,比如ThreadLocal
,线程安全的集合类,以及如果使用Collections
包装线程不安全的集合类.
本章练习
- 写2个线程,其中一个线程打印
1~52
,另一个线程打印A~Z
,每两个数字后打印一个字母,也就是打印顺序应该是12A34B56C...5152Z
。该习题需要利用多线程通信的知识。 - 假设车库有3个车位(可以用
boolean
口数组来表示车库)可以停车,写一个程序模拟多个用户开车离开、停车入库的效果。注意:车位有车时不能停车