多线程共享数据 synchronized和使用ThreadLocal区别
来源:互联网 发布:战锤冰川网络 编辑:程序博客网 时间:2024/06/05 10:05
synchronized和使用ThreadLocal均可以解决以上的问题,只是这是两种不同的方式,synchronized是依赖锁的机制一个执行完后另一个再执行。ThreadLocal会为每一个线程维护一个和该线程绑定的变量的副本,从而隔离了多个线程的数据,每一个线程都拥有自己的变量副本,从而也就没有必要对该变量进行同步了。
概括起来说,对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式。前者仅提供一份变量,让不同的线程排队访问,而后者为每一个线程都提供了一份变量,因此可以同时访问而互不影响。
当然ThreadLocal并不能替代同步机制,两者面向的问题领域不同。同步机制是为了同步多个线程对相同资源的并发访问,是为了多个线程之间进行通信的有效方式;而ThreadLocal是隔离多个线程的数据共享,从根本上就不在多个线程之间共享资源(变量),这样当然不需要对多个线程进行同步了。
阅读全文
0 0
- 多线程共享数据 synchronized和使用ThreadLocal区别
- Synchronized和ThreadLocal的区别
- 多线程间的数据共享和对象独立,ThreadLocal详解
- ThreadLocal与Synchronized(线程安全与数据共享)
- synchronized解决多线程共享数据同步问题
- ThreadLocal与synchronized多线程并发访问区别1【转】
- ThreadLocal与synchronized多线程并发访问区别2【转】
- Synchronized和ThreadLocal使用的比较
- java多线程编程关键字volatile,ThreadLocal和synchronized
- 使用synchronized关键字解决共享数据同步问题:多线程门票销售
- 多线程之线程范围内的数据共享ThreadLocal
- Java基础:多线程之线程范围内的数据共享ThreadLocal
- ThreadLocal与synchronized的区别
- 线程数据共享-ThreadLocal
- 多线程共享数据的几种处理方式之synchronized
- 多线程之lock和synchronized的区别
- Java多线程中Synchronized简介和Static Synchronized的区别
- Java多线程中Synchronized简介和Static Synchronized的区别
- 欢迎使用CSDN-markdown编辑器
- mongodb中update的使用
- Ajax状态值及状态码整理
- Strongly connected HDU
- 结构性伪类选择器
- 多线程共享数据 synchronized和使用ThreadLocal区别
- Python入门
- ceph-deploy osd activate xxx bluestore ERROR
- Linux系统根目录详解
- 怎样才能够修改PDF文件中的文字大小
- AIDL原理分析
- 进程间通信(二)----消息队列
- 5分钟搞定android混淆(http://www.jianshu.com/p/f3455ecaa56e)
- 通过quote函数防止数据库注入