Thread专题(2)中,如何实现共享对象的最佳实践?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3845个文字,预计阅读时间需要16分钟。
此文章被作者收录在系列文章《架构师必备》(系列)中,其中一篇一般来讲会讲述,结合本章的共享发布对象技术和上一章的线程安全技术,我们可以创建线程安全类以及使用java.util.concurrent类库。
此文被笔者收录在系列文章 架构师必备(系列) 中
一般来讲,结合本章的共享&发布对象技术和上一章的线程安全技术一起可以创建线程安全类以及使用java.util.concurrent类库构造安全的并发应用程序的基础。
共享其实就是某一线程的数据改变对其它线程可见,否则就会出现脏数据。在使用Synchronized时除了了解它是执行原子化操作的,同样还要理解如何内存可见性。保证内存可见性就要保证数据的read和write由同一个锁进行保护。下面是一个不可预见的输出程序,一般不要这么来做。这里的number和ready对于线程来说可能永远不可见,也可能正确输出。
本文共计3845个文字,预计阅读时间需要16分钟。
此文章被作者收录在系列文章《架构师必备》(系列)中,其中一篇一般来讲会讲述,结合本章的共享发布对象技术和上一章的线程安全技术,我们可以创建线程安全类以及使用java.util.concurrent类库。
此文被笔者收录在系列文章 架构师必备(系列) 中
一般来讲,结合本章的共享&发布对象技术和上一章的线程安全技术一起可以创建线程安全类以及使用java.util.concurrent类库构造安全的并发应用程序的基础。
共享其实就是某一线程的数据改变对其它线程可见,否则就会出现脏数据。在使用Synchronized时除了了解它是执行原子化操作的,同样还要理解如何内存可见性。保证内存可见性就要保证数据的read和write由同一个锁进行保护。下面是一个不可预见的输出程序,一般不要这么来做。这里的number和ready对于线程来说可能永远不可见,也可能正确输出。

