Thread
alenCook
骑着熊猫去逛街~
内容简短直接不废话,热爱分享
展开
-
Callable and Future
创建线程的2种方式,一种是直接继承Thread,另一种就是实现Runnable接口。原因:这2种方式都有一个缺陷:在执行完成之后无法获取执行结果。————如果需要获取执行结果,就必须通过共享变量的方式来得到结果作用:Java 1.5起,提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。Callable和Runable一样都是执行任务,都是接口,区...原创 2019-02-27 09:41:33 · 152 阅读 · 0 评论 -
多线程中join()方法
在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。原创 2019-02-25 17:28:44 · 354 阅读 · 0 评论 -
ThreadLocal 理解
为什么用它?ThreadLocal概念:线程局部变量,一种多线程间并发访问变量的解决方案。与其synchronized等加锁的方式不同,ThreadLocal不提供锁,使用以空间换时间的手段,为每个线程提供变量的独立副本,以保障线程安全。从性能上说,ThreadLocal不具有绝对的优势,在并发不是很高的时候,加锁的性能会更好,但作为一套与锁完全无关的线程安全解决方案,在高并发量或者竞争激...原创 2019-02-26 08:57:14 · 215 阅读 · 0 评论 -
并发包中ThreadLocalRandom作用-CAS是什么?为什么使用AtomicLong而不是Long?
ThreadLocalRandom类——>为什么使用它?ThreadLocalRandom类是随机数生成器,它解决了Random类在多线程下多个线程竞争内部唯一的原子性种子变量,导致大量线程自旋重试的不足(文下有解释)。本节首先讲解下Random类的实现原理已经它在多线程下使用的局限性,然后引入ThreadLocalRandom 类,通过讲解ThreadLocalRandom的实现原理来...原创 2019-02-26 11:19:15 · 783 阅读 · 0 评论 -
ThreadLocalRandom的setSeed(long seed)
生成随机数是很常见的任务。 这也是 JAVA 提供 Random 的原因。但是它在多线程环境中性能并不高。简单来说,Random 之所以在多线程环境中性能不高的原因是多个线程共享同一个 Random 实例并进行争夺。为了解决这个限制,JAVA 在 JDK 7 中引入了 ThreadLocalRandom 类,用于在多线程环境下生产随机数。ThreadLocalRandom 强于 Rando...原创 2019-02-26 13:53:45 · 642 阅读 · 0 评论 -
可重入读写锁-ReentrantReadWriteLock
① ReadWriteLock是一个接口,提供了readLock和writeLock两种锁的操作机制,一个是读锁,一个是写锁。读锁可在没有写锁的时候被多个线程同时持有,写锁是独占的(排他的)。 每次只能有一个写线程,但是可以有多个线程并发地读数据。一个获得了读锁的线程必须能看到前一个释放的写锁所更新的内容。理论上,读写锁比互斥锁允许对于共享数据更大程度的并发。与互斥锁相比,读写锁是否...原创 2019-02-26 15:23:46 · 263 阅读 · 0 评论