读书笔记——《Java多线程编程核心技术》第七章

第七章主要讲了以下几个方面:

  1. 线程组的使用;
  2. 线程状态的切换;
  3. SimpleDateFormat类与多线程的解决办法;
  4. 处理线程的异常。

线程的状态

线程的状态:new,Runnable,blocked,waiting,timed_waiting。

new:指刚创建的线程;

runnable:运行中的状态;

blocked:被阻塞的线程,比如等待锁的释放;

waiting:调用wait方法/await方法后的状态;

timed_waiting:sleep,join后的状态。

terminated:线程运行完成。

线程组

线程组

SimpleDateFormat非线程安全

解决办法:

  1. 创建多个simpleDateFormat对象;
  2. 使用ThreadLocal

线程中出现异常的处理

  1. setUncaughtExceptionHandler()是给指定线程对象设置的异常处理器。在Thread类中还可以使用setDefaultUncaughtExceptionHandler()方法对所有线程对象设置异常处理器。
  2. 线程组内异常处理:继承ThreadGroup实现uncaughtException方法。