这些都是根据我最近看的《Java实战指南多线程编程(设计模式篇)》所得整理。
模式名称
Thread Specific Storage(线程特有存储)模式
模式解决的问题
多线程相关问题,引入线程安全、死锁等对根就地是多变成共享变量导致的。如果解决了共享变量的问题,就可以让一部分无需共享变量的线程没有线程安全的问题。
解决思路
不共享变量。可以使用线程内的私有变量来实现,但是这样实现的通用性不够,可以扩展为为每个线程新建一个存储对象。
ApplicationThread类:模式的客户端,表示出各个应用的应用线程。
TSObjectProxy类:用于访问线程特有对象的代理对象。getThreadSpecific获取与其所属TSObjectProxy实例关联的线程特有对象实例,setThreadSpecific建立其所属TSObjectProxy实例与制定线程特有对象实例的关联,removeThreadSpecific删除其所属TSObjectProxy实例与线程特有对象实例的关联。
TSObject:表示线程特有对象。具体的类型由应用决定。
ThreadSpecificStorage:线程特有存储。get获取与指定TSObjectProxy实例关联的TSObject实例,set设置制定TSObjectProxy实例与指定TSObject实例的关联关系。