《黑马程序员》 往ThreadLocal中存多数据时的分析

本文分析了在Java中使用ThreadLocal存储多个数据时遇到的问题,指出直接使用ThreadLocal为每个线程设置不同实例会导致实例过多。为解决此问题,文章提出将数据封装到一个对象中,并通过ThreadLocal保持线程内的唯一实例,以实现线程局部数据的共享。通过示例代码展示了如何改进ThreadLocal的使用,确保模块间获取的是同一份数据。
摘要由CSDN通过智能技术生成
------- android培训java培训、期待与您交流! ----------
package cn.itcast.thread;

import java.util.Random;

public class ThreadLocalDemo3 {
	/**
	 * ThreadLocal类的使用。
	 * 
	 *   一个ThreadLocal只代表一个变量,
	 *   但是如果我们的数据很多我们应该如何操作了?
	 *    我们可以把我们的数据封装到一个对象中。然后把对象做为一个数据给设置到当前线程中
	 *    现在我们来实现一下:
	 *       我们创建一个MyThreadLocalScopeData然后创建两个变量一个为NAME,一个为AGE
	 *       我们实现它的SET,GET方法。然后来操作
	 *       
	                 效果做出来了但是并不好。程序很不好
	       Thread-1 has put data :-779569351
			Thread-0 has put data :443820472
			ModuleA from:Thread-0 get data :443820472
			ModuleA from:Thread-0 get datas :name:443820472,443820472
			ModuleA from:Thread-1 get data :-779569351
			ModuleA from:Thread-1 get datas :name:-779569351,-779569351
			ModuleB from:Thread-0 get data :443820472
			Modu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值