如果你定义了一个单实例的java bean,它有若干属性,但是有一个属性不是线程安全的,比如说HashMap。并且碰巧你并不需要在不同的线程中共享这个属性,也就是说这个属性不存在 跨线程的意义。那么你不要sychronize这么复杂的东西,ThreadLocal将是你不错的选择。举例来说:impor...
分类:
其他好文 时间:
2014-11-03 20:41:50
阅读次数:
114
ThreadLocal是为了使每个线程保存一份属于自己的数据。先看一个使用ThreadLocal的实例。package org.springframework.aop.framework;import org.springframework.core.NamedThreadLocal;public ...
分类:
其他好文 时间:
2014-11-02 23:45:21
阅读次数:
256
这两个的差别就在于是否有参数Looper,而Looper是一个线程相关的对象。
何谓线程相关的变量?就是线程间不能共享的对象,只在本线程内有作用的对象。
那么Looper对象的作用是什么?
从我个人的理解,Looper类就是对MessageQueue的封装,它主要做的是两件事:
1)构造Looper对象,初始化MessageQueue,我们可以从其构造函数看到:
可以看到,Loop对象被创建之后,会被放到ThreadLocal变量中,而ThreadLocal正是线程局部变量,这说明了关于Looper的一个特...
分类:
移动开发 时间:
2014-10-27 17:41:19
阅读次数:
173
java的ThreadLocal类的用法,ThreadLocal是一个支持泛型的类,用在多线程中用于防止并发冲突问题。
例如下面的一个例子,就是用于线程增加1,但是相互不冲突
package com.test.threadlocal;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Execut...
分类:
编程语言 时间:
2014-10-23 16:24:35
阅读次数:
235
ThreadLocal 是一个线程级别的局部变量,并非“本地线程”。ThreadLocal 为每个使用该变量的线程提供了一个独立的变量副本,每个线程修改副本时不影响其它线程对象的副本...
分类:
编程语言 时间:
2014-10-20 23:26:16
阅读次数:
269
在编程的时候经常用到遇到hash,但是hash的实质是什么?hash的原理是什么,如果吧hash的原理应用到实际的应用中,了解了hash的原理这些都可以迎刃而解,我是在看Threadlocal的时候看到了神奇数字,然后引发了对hash的深入的学习,把我的理解分享出来,希望对大家有所有帮助...
分类:
其他好文 时间:
2014-10-20 10:05:00
阅读次数:
193
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。
但是 SimpleDateFormat 并不是一个线程安全的类,在多线程并发访问下会出现问题。通过以下代码进行检验,...
分类:
编程语言 时间:
2014-10-19 18:43:01
阅读次数:
318
ThreadLocal类 -------每个线程有仅拥有一个T对象 重点方法: T get();//返回此线程局部变量的当前线程副本中的值 T initialValue();//返回此线程局部变量的当前线程的“初始值” void rem...
分类:
其他好文 时间:
2014-10-14 14:20:48
阅读次数:
151
一、 每一个线程实质上是一核处理器。
二、 线程本地缓存就是处理器缓存。
三、 避免数据同步的策略:使用ThreadLocal(spring singleton 实例)、不共享变量。
四、 工作内存指的是线程本地内存。在程序运行时,有线程本地内存、主内存。...
分类:
编程语言 时间:
2014-10-09 18:47:47
阅读次数:
224