ThreadLocal好难啊!!! thread 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的i是static的,所以会有问题啊,static的话你那三个线程会共享这个变量的,而且i++也不是原子操作的 然后就是我把remove也注释掉出来会有这样的结果Thread-0 i=2 n=0Thread-0 i=1 n=1Thread-1 i=2 n=0Thread-0 i=1 n=2Thread-1 i=2 n=1Thread-1 i=2 n=2Thread-2 i=3 n=0Thread-2 i=3 n=1Thread-2 i=3 n=2照理单个线程自己输出应该不会错乱啊怎么线程0会从2开始又变到1.... thread local就是每个thread都有自己存的东西。一般代码中还是尽量少用,除非实在是没有办法了。 那还是没想懂怎么Thread0会出来2,1,1这样的结果啊。。 ThreadLocal 的用法:当我们希望一个线程有自己那份变量副本时我们才用它,threadLocal.get() 就只得到自己那份,好处是初始化和更新及读取过程可以在不同的方法中,彼此之间不互相传递参数,特别适应一些框架型的 API 设计,来扮演一个 Context 角色,比如 transaction context, login context, faces context, session context 之类。框架 API 会在一个请求开始时初始化 context 然后 threadLocal.set 放进去,之后各个阶段的 API 方法从 threadLocal.get() 拿到当前线程的 context,最后阶段时再 threadLocal.remove() 清除。当我们使用 static 时就表示我们其实不需要 ThreadLocal. 跪求 解决 关于ant的StripLineComments 请教一下,这样的代码对吗? 关于Collection的一个问题 关于ConcurrentHashMap和 Collections.synchronizedMap(new HashMap) 急:关于JTREE的小问题 JAVA查询问题 请教一个关于多线程的问题. 出现以下错误,怎么办。 用JPG文件生成的图标(包含在Japplet中)为什么不能在IE中显示? JSONObject 引号问题 ios的ZSSRichTextEditor-master。。android版本谁移植个嘛
出来会有这样的结果
Thread-0 i=2 n=0
Thread-0 i=1 n=1
Thread-1 i=2 n=0
Thread-0 i=1 n=2
Thread-1 i=2 n=1
Thread-1 i=2 n=2
Thread-2 i=3 n=0
Thread-2 i=3 n=1
Thread-2 i=3 n=2
照理单个线程自己输出应该不会错乱啊
怎么线程0会从2开始又变到1....
当我们希望一个线程有自己那份变量副本时我们才用它,threadLocal.get() 就只得到自己那份,好处是初始化和更新及读取过程可以在不同的方法中,彼此之间不互相传递参数,特别适应一些框架型的 API 设计,来扮演一个 Context 角色,比如 transaction context, login context, faces context, session context 之类。框架 API 会在一个请求开始时初始化 context 然后 threadLocal.set 放进去,之后各个阶段的 API 方法从 threadLocal.get() 拿到当前线程的 context,最后阶段时再 threadLocal.remove() 清除。当我们使用 static 时就表示我们其实不需要 ThreadLocal.