关于多线程编程您不知道的5 件事---有关高性能线程处理的微妙之处 (转)
?
正如您所期望的,清单 3?中的?MyObject
?类通过?get
?和?set
?方法公开其?whatAmIReading
?属性,但是?set
?方法所做的有点不同。它不仅仅将其内部?Book
?引用分配给指定的?Book
(这将使用?清单 3?中注释出的代码来完成),而是使用一个AtomicReferenceFieldUpdater
。
?
参阅?参考资料?了解有关原子类的更多信息。
结束语多线程编程永远充满了挑战,但是随着 Java 平台的演变,它获得了简化一些多线程编程任务的支持。在本文中,我讨论了关于在 Java 平台上编写多线程应用程序您可能不知道的 5 件事,包括同步化方法与同步化代码块之间的不同,为每个线程存储运用ThreadLocal
?变量的价值,被广泛误解的?volatile
?关键字(包括依赖于?volatile
?满足同步化需求的危险),以及对原子类的错杂之处的一个简要介绍。参见?参考资料?部分了解更多内容。