多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
将一个域声明为`final`变量可以保证线程安全,如下代码: ``` final Map<String, Double> accounts = new HashMap<>(); ``` * 使用`final`声明后,其它线程在构造函数执行完后才能看到这个变量,否则可能会看不到accounts更新后的值,而看到是`null`不是更新后的HashMap; * 需要明白的是:`final`修饰后仅仅是对account这个变量的访问安全,但是对类似HashMap这类本身不是线程安全,所以对它们的操作(调用它的方法)并不是线程安全,仍然需要线程同步。