线程
luoChao0916
这个作者很懒,什么都没留下…
展开
-
ThreadLocal详解
ThreadLocal为每一个使用该变量的线程都提供独立的副本,可以做到线程间的数据隔离,每一个线程可以访问各自内部的副本变量。 常用API set(T t):设置要存储的数据 源码分析 Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) map.set(this,...原创 2018-08-24 18:34:22 · 255 阅读 · 0 评论 -
Volatile关键字
缓存模型 在计算机,所有的运算操作都是通过CPU的寄存器来完成的, 涉及到数据的读写操作,都需要从计算机主存中获取。 由于主存的读写效率不高,出现了缓存模型, 缓存的出现可以解决CPU直接访问内存效率低下的问题。 在程序运行的过程中,会将需要的数据从主存中复制一份到缓存中, 让CPU在缓存中读写数据,运算结束后,再将缓存中的数据刷新到主存中。 缓存一致性问题 缓存的出现,极大的提高了CPU...原创 2018-08-24 18:52:28 · 229 阅读 · 0 评论 -
理解线程池的原理
为什么要使用线程池 Thread是一个重量级的资源,创建、启动以及销毁都是比较耗费系统资源的,因此对线程的重复利用是一种非常好的程序设计。所以我们让任务在线程池中运行比为每一个任务分配一个线程更有优势。 线程池的原理 线程池,字面理解就是一个管理工作线程的资源池。线程池与工作队列是密切相关的。工作队列中缓存了要执行的任务。工作线程的任务很简单:从工作队列中取出任务,执行任务,返回线程池等待下...原创 2018-09-01 22:25:10 · 293 阅读 · 0 评论 -
线程安全(内部锁Synchronized和显示锁Lock)
线程安全问题的产生? 多个线程并发访问共享数据 锁(Lock)的概述 线程安全问题是因为多个线程并发访问共享数据。于是很容易我们就想到将多个线程对共享数据的访问转换为串行访问。同一时刻只能有一个线程来访问共享数据。锁就是利用这种思路来保障线程安全的一种同步机制 锁可以理解为对共享数据保证的许可证。一个线程只有在持有许可证的情况下才能访问共享数据,在结束共享数据的访问之后必须释放许可证,以...原创 2018-09-03 20:25:15 · 2893 阅读 · 0 评论