[笔记] Java 并发 – 基础构建模块
同步容器类
同步容器类包括 Vector / Hashtable / … 这些同步的封装器类是由 Collections.synchronizedXxx
等工厂方法创建的。
这些类实现线程安全的方式是:把它们的状态封装起来,并对每个公有方法都进行同步,使得每次只有一个线程能访问容器的状态。
同步容器类的问题
同步容器类都是线程安全的,也就是说直接调用暴露的公共方法都是没有任何安全问题的。但问题出在复合操作上,常见的比如:…
同步容器类包括 Vector / Hashtable / … 这些同步的封装器类是由 Collections.synchronizedXxx
等工厂方法创建的。
这些类实现线程安全的方式是:把它们的状态封装起来,并对每个公有方法都进行同步,使得每次只有一个线程能访问容器的状态。
同步容器类都是线程安全的,也就是说直接调用暴露的公共方法都是没有任何安全问题的。但问题出在复合操作上,常见的比如:…
Error 类的异常为 Java 运行时的系统内部错误导致,如果发生了这种异常,能通知给用户做做善后工作就已经不错了,也无力回天。所以这种异常在开发时基本是无需关心,也不能抛出的。
Exception 分支下的 RuntimeException 和 IOException 是按两种规则来划分的:
当某个 class 不是线程安全的时候,那么可以通过 ThreadLocal 辅助类来让每个线程都构造自己的这个 class 的实例。
比如 SimpleDateFormat 不是线程安全的,那么可以使用如下方式:
public static final ThreadLocal dateFormat =
ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd"));
…