如何将ThreadLocal在并发编程中实现并优化其长尾词应用场景?
- 内容介绍
- 文章标签
- 相关推荐
本文共计769个文字,预计阅读时间需要4分钟。
在并发编程中,如果成员变量不做任何处理,实际上是不安全的,因为各个线程都可能操作同一个变量。在这种情况下,我们需要满足以下条件:
gistfile1.txt在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,显然是不行的。
那么在有一种情况之下,我们需要满足这样一个条件:变量是同一个,但是每个线程都使用同一个初始值,也就是使用同一个
变量的一个新的副本。这种情况之下ThreadLocal就非常使用,比如说DAO的数据库连接,我们知道DAO是单例的,那么他的属性
Connection就不是一个线程安全的变量。而我们每个线程都需要使用他,并且各自使用各自的。这种情况,ThreadLocal就比较
好的解决了这个问题。
首先定义一个ThreadLocal:
public class ConnectionUtil {
private static ThreadLocal
本文共计769个文字,预计阅读时间需要4分钟。
在并发编程中,如果成员变量不做任何处理,实际上是不安全的,因为各个线程都可能操作同一个变量。在这种情况下,我们需要满足以下条件:
gistfile1.txt在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,显然是不行的。
那么在有一种情况之下,我们需要满足这样一个条件:变量是同一个,但是每个线程都使用同一个初始值,也就是使用同一个
变量的一个新的副本。这种情况之下ThreadLocal就非常使用,比如说DAO的数据库连接,我们知道DAO是单例的,那么他的属性
Connection就不是一个线程安全的变量。而我们每个线程都需要使用他,并且各自使用各自的。这种情况,ThreadLocal就比较
好的解决了这个问题。
首先定义一个ThreadLocal:
public class ConnectionUtil {
private static ThreadLocal

