最近在开发过程中,在做一个字典项服务的时候,最开始采用了ThreadLocal对象来缓存数据。在使用ThreadLocal过程中遇到一些问题,这里和大家分享一下。
一、 什么是ThreadLocal?
顾名思义它是local variable(线程局部变量)。它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本。从线程的角度看,就好像每一个线程都完全拥有该变量。...
分类:
编程语言 时间:
2015-03-10 21:32:28
阅读次数:
195
package jsckson;/******************************************** * 文件名称: threadLocal *********************************************/interface name{ pu...
分类:
编程语言 时间:
2015-03-06 14:10:37
阅读次数:
221
学习一个东西首先要知道为什么要引入它,就是我们能用它来干什么。所以我们先来看看ThreadLocal对我们到底有什么用,然后再来看看它的实现原理。
ThreadLocal如果单纯从名字上来看像是“本地线程"这么个意思,只能说这个名字起的确实不太好,很容易让人产生误解,ThreadLocalVariable(线程本地变量)应该是个更好的名字。我们先看一下官方对ThreadLocal的描述:...
分类:
其他好文 时间:
2015-03-06 12:50:22
阅读次数:
292
本文参考http://lavasoft.blog.51cto.com/62575/51926/,对其中的程序进行了改写一、概述ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。...
分类:
其他好文 时间:
2015-03-05 16:47:33
阅读次数:
205
ThreadLocal是用于并发环境下避免竞争,简化编程的机制,它在并发环境下提供了一个逻辑上全局的访问点,来访问线程本地对象。其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量)。它为每一个使用该变量的线程...
分类:
其他好文 时间:
2015-03-03 09:42:34
阅读次数:
164
背景
在Java程序实现中,我们往往应用到事务的机制,在业务层进行事务开启,创建数据库连接,调用Dao层方法进行数据库访问,过程中需要将数据库连接Connection作为参数传递给Dao层方法。显而易见,这样的实现不利于Dao层方法的复用,当在不使用事务的情况下,我们是需要在Dao层方法中创建数据库连接的,这样Dao层方法免去Connection参数就可以使得方法更加独立、明确了,怎样解...
分类:
数据库 时间:
2015-02-28 21:40:11
阅读次数:
1113
package util;import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;public class MD5Util {
private static ThreadLocal messageDigestHolder = new ThreadLocal...
分类:
其他好文 时间:
2015-02-27 18:30:34
阅读次数:
144
当自己总结完ThreadLocal使用小细节(上)的时候,再过几天会看了一下,发现自己学习得有点“泛”(就是半桶水),不够深入,说服不了自己,于是决定继续往下面探讨。探讨过程中发现(上)总结得确实有点“不正确”。
ThreadLocal通过中文解释就是线程本地变量,是线程的一个局部变量。根据哲学家黑格尔“的存在即合理”的说法,ThreadLocal的出现肯定是有它的意义,它的出现也是因为...
分类:
其他好文 时间:
2015-02-15 18:09:40
阅读次数:
126