多线程进阶
weixin_37260217
这个作者很懒,什么都没留下…
展开
-
多线程进阶ThreadLocal
线程的私有变量是利用ThreadLocal来实现的,那么怎么来的实现的呢,简单来说,就是Thread包含一变量map,这个map里面的键值对存放的是ThreadLocal —- Value键值对,也就是线程若需要存放多个私有变量,需要new出多个ThreadLocal,如public class Run { public static void main(String[] ar原创 2017-10-20 16:06:31 · 220 阅读 · 0 评论 -
多线程进阶InheritableThreadLocal
上篇说的是ThreadLocal,如果对ThreadLocal足够了解的话,InheritableThreadLocal也很好理解。InheritableThreadLocal类继承于ThreadLocal类,所以它具有ThreadLocal类的特性,但又是一种特殊的ThreadLocal,其特殊性在于InheritableThreadLocal变量值会自动传递给所有子线程,而普通ThreadLoc原创 2017-10-21 12:07:05 · 256 阅读 · 0 评论 -
多线程进阶二 Unsafe 源码
java中的Unsafe类 java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应。public native lon原创 2017-10-27 17:29:02 · 242 阅读 · 0 评论 -
LockSupport
LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。每个使用LockSupport的线程都会与一个许可关联,如果该许可可用,并且可在进程中使用,则调用park()将会立即返回,否则可能阻塞。如果许可尚不可用,则可以调用 unpark 使其可用。但是注意许可不可重入,也就是说只能调用一次park()方法,否则会一直阻塞。 LockSupport.park()、LockSupport.u原创 2017-11-06 15:41:15 · 285 阅读 · 0 评论 -
多线程进阶--线程的中断
java为我们提供了一种调用interrupt()方法来请求终止线程的方法,下面我们就一起来学习一下线程的中断。每一个线程都有一个boolean类型标志,用来表明当前线程是否请求中断,当一个线程调用interrupt() 方法时,线程的中断标志将被设置为true。 我们可以通过调用Thread.currentThread().isInterrupted()或者Thread.interrupted(原创 2017-11-08 15:18:45 · 343 阅读 · 0 评论 -
多线程进阶--Future与Callable
Future与Callable可以实现一种异步计算结果,Callable类似于一个增强的Runnable接口,和Runnable接口不同的是,它提供了一个call方法来执行线程代码,而call方法可以有返回值,也可以声明式的抛出异常。 Future的get方法会阻塞在那,等待执行完成,获取结果。 在整个FeatureTask中没有直接使用锁机制,而是通过LockSupport来阻塞线程,唤醒线程原创 2017-10-31 19:17:26 · 321 阅读 · 0 评论 -
多线程进阶(一)
当线程被创建并且启动后,它经历了5种状态:新建、就绪、运行、阻塞和死亡状态。当线程在运行的时候,不能一直占有CPU时间片,CPU会在多个线程之间进行调度,线程的状态也会多次切换于阻塞和运行状态。 当线程对象被创建出来是进入了新建状态,当调用了start方法后,线程进入就绪状态。这里可能读者的理解是线程start后进入运行状态,其实线程内部还是依赖JVM的调度,当调用了start方法后,JVM会认为原创 2017-10-13 16:49:45 · 252 阅读 · 0 评论 -
ReentrantLock实现的源码分析
拜读过这篇文章http://ifeve.com/introduce-abstractqueuedsynchronizer/之后感觉对多线程又有了进一步的认识,但是这篇文章偏于理论,于是我便使用了调试的功能进行了进一步的分析认识,在看这篇文章之前建议先认真阅读上面链接的那篇文章。 先给出里面涉及到的类和接口的关系图: 先贴出来调试的 时候的代码:public class Run { pub原创 2017-11-04 18:50:02 · 257 阅读 · 0 评论