当前位置:嗨网首页>书籍在线阅读

39-使用线程本地变量

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

1.9 使用线程本地变量

对于并发应用程序来说,数据共享是非常重要的一个方面。对于继承 Thread 类或者实现 Runnable 接口的类来说,在两个或多个线程间共享数据是极其重要的。

如果创建了实现 Runnable 接口的类对象,并用多个线程对象来执行该任务对象,那么所有线程都能够共享该任务对象的属性。这意味着,如果在一个线程中更改了该任务对象的属性,那么其他线程也会受到相应影响。

有时希望多线程同时执行一个任务的实例时,能够独享一个变量。为此Java并发API中的 线程本地变量 (thread-local variable)提供了良好的支持。只要线程存活,线程本地变量就会一直存在,因此该机制也存在一些缺点。比如,在一些线程复用的场景下,这就可能产生问题。

本节将会实现两个案例:第一个案例实现第一段中描述的问题;第二个案例使用线程本地变量来解决这个问题。