16.10 本章小结

16.10 本章小结

本章主要介绍了Java的多线程编程支持:

  • 简要介绍了线程的基本概念,并讲解了线程和进程之间的区别与联系。
  • 本章详细讲解了如何创建、启动多线程,并对比了三种创建多线程方式之间的优势和劣势,也详细介绍了线程的生命周期。
  • 本章通过示例程序示范了控制线程的几个方法,
  • 还详细讲解了线程同步的意义和必要性,并介绍了三种不同的线程同步方法:
    • 同步方法、
    • 同步代码块,
    • 显式使用Lock控制线程同步。
  • 本章也介绍了三种实现线程通信的方式:
    • 使用同步监视器的方法实现通信、
    • 显式使用Condition对象实现线程通信,
    • 使用阻塞对象实现线程通信。

此外,本章还介绍了线程组和线程池,由于线程属于创建成本较大的对象,因此程序应该考虑复用线程,线程池是在实际开发中不错的选择.
本章最后介绍了线程相关的工具类,比如ThreadLocal,线程安全的集合类,以及如果使用Collections包装线程不安全的集合类.

本章练习

  1. 写2个线程,其中一个线程打印1~52,另一个线程打印A~Z,每两个数字后打印一个字母,也就是打印顺序应该是12A34B56C...5152Z。该习题需要利用多线程通信的知识。
  2. 假设车库有3个车位(可以用boolean口数组来表示车库)可以停车,写一个程序模拟多个用户开车离开、停车入库的效果。注意:车位有车时不能停车