Fork me on GitHub
摘要: ThreadLocal 1、介绍 该类提供了线程局部 (thread local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其get 或 set方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal实例通常是类中的 private static 字段 阅读全文
posted @ 2020-04-07 20:44 编码的艺术 阅读(169) 评论(0) 推荐(0)
摘要: HashTable 1、介绍 底层基于数组与链表实现,通过 关键字保证在多线程的环境下仍然可以正常使用。虽然在多线程环境下有了更好的替代者 ,但是作为一个面试中高频的知识点,我们还是有必要了解一下其内部实现细节的。 内部属性与 几乎一致, 中的 属性并不止是扩容阈值,还有另一个作用:哈希表容量大小, 阅读全文
posted @ 2020-04-01 19:34 编码的艺术 阅读(144) 评论(0) 推荐(0)
摘要: CopyOnWriteArrayList 1、介绍 是 juc 包下一个线程安全的并发容器,底层使用数组实现。CopyOnWrite 顾名思义是写时复制的意思,其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,会把内容 Copy 出去形成一个新的内容然后再进行修改,这是一 阅读全文
posted @ 2020-04-01 19:32 编码的艺术 阅读(143) 评论(0) 推荐(0)
摘要: Semaphore 1、介绍 Semaphore是一个计数信号量,可以控同时访问的线程个数,它的本质是一个"共享锁"。 信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等待,直到有可用的许可为止。 线程可以通 阅读全文
posted @ 2020-03-31 17:57 编码的艺术 阅读(112) 评论(0) 推荐(0)
摘要: CyclicBarrier 1、介绍 CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrie 阅读全文
posted @ 2020-03-31 17:45 编码的艺术 阅读(131) 评论(0) 推荐(0)
摘要: CountDownLatch 1、介绍 ​ 在并发编程的场景中,最常见的一个case是某个任务的执行,需要等到多个线程都执行完毕之后才可以进行,CountDownLatch可以很好解决这个问题。 ​ 闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态。通俗的讲就是,一个闭锁 阅读全文
posted @ 2020-03-26 18:36 编码的艺术 阅读(162) 评论(0) 推荐(0)