本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
ThreadLoacal
参见:http://www.blogjava.net/redcoatjk/archive/2011/11/02/362491.html
Hibernate Session, 其作用无需多言.在运用中为避免资源消耗,一般都会手动封装一个HibernateUtil类(未使用Spring管理的前提下).该类的作用使Hibernate加载配置文件config, 创建sessionFactory等 ...
Java三大格式化类的线程安全问题以及ThreadLocal的使用
线程安全问题
java.text中的三大格式化类:
1、NumberFormat
2、MessageFormat
3、DateFormat(SimpleDateFormat)
除了NumberFormat外,其他两个都不是线程安全的。
NumberFormat中使用的属性都是不变的,而SimpleDateFormat等却使用了可变但没有同步的属性,所以在多线程访问的条件下会产生线程 ...
Java中的ThreadLocal
再了解ThreadLocal之前先看一个简单的Java线程示例。
线程类:
public class TestThread2 extends Thread {
int a;
String b = "a";
@Override
public void run() {
for (int i = 1; i <= 3; i++) {
Sys ...
<基础-2> 构建线程安全应用程序
上一篇主要介绍了程序,进程,线程的概念和区别,进程的组成。然后是线程的创建和基本控制。接着本篇就介绍下什么是线程安全,怎样去保证线程安全的基本方法。
二、 构建线程安全应用程序
2.1 什么是线程安全性
线程安全很难给出一个准确的定义。大都是从不同的方面进行一个描述。当对一个复杂对象进行某种操作时,从操作开始到操作结束,该对象中间肯定会经历若干个非法的中间状态。能保证多线程在使用该对象时,每个开始 ...
Android中的ThreadLocal源码解析
我在之前的文章《Android中的Looper,Handler及HandlerThread简析》(http://maosidiaoxian.iteye.com/blog/1927735)中有提到过ThreadLocal,后来一直想详细读读这个类。前几天写完了Java原生的ThreadLocal,今天来看一下Android中的ThreadLocal类。在读这篇文章之前,建议先读一下我前面写的关于Jav ...
ThreadLocal原理解析
ThreadLocal即线程本地变量,通过ThreadLocal.set()设置到线程中的对象是线程自己的对象,其他线程是不需要访问、也访问不到的。各个线程中访问的是不同的对象。
线程类Thread持有一个ThreadLocal.ThreadLocalMap的引用,通过这个map线程可以拥有多对本地变量;且各个线程拥有的是不同的map不需要同步,所以速度很快。
...
Java中的ThreadLocal源码解析(下)
上篇讲到了ThreadLocal类(http://maosidiaoxian.iteye.com/blog/1939142),这篇继续讲ThreadLocal中的ThreadLocalMap内部类。
下面先通过一张图,看一下这个内部类的结构:
可以看到在ThreadLocalMap类中,有一个常量,三个成员变量,代码如下:
/**
* The initia ...
Java中的ThreadLocal源码解析(上)
这一篇之所以讲ThreadLocal,是因为之前在读Handler,Looper的源码过程(见http://maosidiaoxian.iteye.com/blog/1927735)中,看到了这个类,引起了我的兴趣。而后来发现JAVA1.6中的TheadLocal类,和我在android源码看到的这个ThreadLocal类代码是不一样的。所以这篇先讲一下Java的ThreadLocal。
Java ...
ThreadLocal类及应用技巧
/**
* ThreadLocalShareData.java
* cn.com.songjy.test.socket.thread
* Function: TODO
*
* version date author
* ──────────────────────────────────
* 1.0 2013-8-16 songjy
...
JDK的ThreadLocal理解(一)使用和测试
ThreadLocal是java中轻量级的线程同步解决方法,为了达到线程安全的目的,采用的是空间隔离的方法。使用方式如下:
1、定义2个会被多线程共享的bean,一个使用ThreadLocal,一个不使用任何线程同步措施
package bean;
public interface IShareBean
{
public void get();
...
ThreadLocal独家解秘 附JDK源码
public class ThreadLocalTest {
ThreadLocal<String> tl = new ThreadLocal<String>();
ThreadLocal<String> t2 = new ThreadLocal<String>();
/**
* @author zlz
*
* @time ...
java -ThreadLocal
ThreadLocal
什么是ThreadLocal?
顾名思义它是local variable(线程局部变量)。它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。
使用场景
To keep state with a thread (user-i ...
threadLocal实例
实例1:
package com.bijian.thread;
public class MyThread extends Thread {
private static ThreadLocal tl = new ThreadLocal() {
protected synchronized Object initialValue() {
return new Int ...
设计模式之 动态代理 - ThreadLocal实现事务管理
动态代理:JDK动态代理只能对实现了接口的类进入代理,采用JDK动态代理必须实现InvocationHandler接口,采用Proxy 类创建相应的代理类.
下面使用Model2(MVC)使用代理事务查询用户基本信息,使用DB2数据库:
建立表:
create table T_USER
(
USER_ID VARCHAR(10) ...
ThreadLocal浅析
原写于2010-12-11
Java并发,对于共享资源的控制,是一个复杂的事情,比如:同步等。 ThreadLocal 为这个问题提供另外一种解决方案,其实根本的原理“用空间换时间”。
一、结构图
二、源码阅读
关注切入点:set(),get()方法
1.set()
ThreadLocal是否会引起内存溢出?
最近碰到一个使用ThreadLocal时因为未调用remove()而险些引起内存溢出的问题,所以看了下ThreadLocal的源码,结合线程池原理做一个简单的分析,确认是否最终会导致内存溢出。
既然是因为没调用remove()方法而险些导致内存溢出,那首先看下remove()方法中做了什么。
public void remove() {
ThreadLocalMap m ...