前言这一阵子一直在看Picasso,在看的过程中发现了很多很有意思的东西,有的是以前见过甚至用过但是没有深入关注的,有些是以前根本没有见过的——比如今天要讲的ThreadLocal。(android 6.0)正文1,ThreadLocal是什么?先看一下Android官网的文档:
Implements a thread-local storage, that is, a variable for...
分类:
其他好文 时间:
2016-05-27 11:32:42
阅读次数:
212
原文出处: 海 子 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大 ...
分类:
编程语言 时间:
2016-05-19 16:26:21
阅读次数:
268
主要用途 1)设计线程安全的类 2)存储无需共享的线程信息 设计思路 ThreadLocalMap原理 1)对象存储位置-->当前线程的ThreadLocalMap ThreadLocalMap是在ThreadLocal中定义的静态内部类,用于存放线程的信息,以ThreadLocal或Inherit ...
分类:
其他好文 时间:
2016-05-17 13:32:46
阅读次数:
155
在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。 但是局部变量也有问题,就是在函数调用的时候,传递起来很麻烦: 每个函数一层一层调用都这么传参数那还得了?用全局变量?也不行,因为每个线程处 ...
分类:
其他好文 时间:
2016-05-16 19:09:28
阅读次数:
116
事务的概念
MySQL下操作事物
JDBC下操作事物
事务特性(重点) ACID
事务的隔离级别
隔离级别方案演示
bcUtils中使用ThreadLocal
丢失更新
解决丢失更新可以采用两种方式
连接池
数据库连接池编写原理分析
自定义连接池
DBCP数据源(了解)
dbcp连接池使用
C3P0数据源(必会)
配置Tomcat数据源
JNDI技术简介...
分类:
编程语言 时间:
2016-05-16 13:01:16
阅读次数:
371
Java并发编程:深入剖析ThreadLocal
想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。
以下是本文目录大纲:
一.对ThreadLocal的理解...
分类:
其他好文 时间:
2016-05-12 22:09:47
阅读次数:
238
ThreadLocal在数据库连接和session管理下有广泛的应用,了解ThreadLocal对struts、spring等开源代码的理解有很大的帮助。ThreadLocal如果单纯从名字上来看像是“本地线程”这么个意思,只能说这个名字起的确实不太好,很容易让人产生误解,ThreadLocalVariable(线程本地变量)应该是个更好的名字。我们先看一下官方对ThreadLocal的描述:...
分类:
编程语言 时间:
2016-05-12 21:47:28
阅读次数:
352
TheadLocal称为线程本地存储,就是说一个变量,每个线程都有它的一个副本,并且相互之间是独立的。ThreadLocal类的实现下面是该类的提供的关键的几个方法:public T get() { }
public void set(T value) { }
public void remove() { }
protected T initialValue() { }通过查看jdk中该类的源码,可...
分类:
编程语言 时间:
2016-05-12 20:44:23
阅读次数:
297
一,引入ThreadLocal/*测试ThreadLocal对象
* ThreadLocal:这个类提供了一个线程本地的变量。
* 这些变量在被共享访问的情况下在不同的线程里是独立的 ( 必须通过 get 和 set 方法来访问 ) 。
* 很显然该类提供了一个机制可以防止多线程访问带来的不安全机制。实际上就是在线程本地保存一个变量,
* 而不是通过共享变量。这个就要看我们...
分类:
编程语言 时间:
2016-05-12 12:56:23
阅读次数:
278
/** * 数据库操作助手类 */ public class DatabaseHelper { private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseHelper.class); private static fin ...
分类:
数据库 时间:
2016-05-11 18:12:19
阅读次数:
410