
并发编程
文章平均质量分 90
java之JUC包的解释与实例讲解,和多线程并发场景分析
Volunteer Technology
对java和人工智能比较熟悉,在精进的道路上,毕业至今!
展开
-
面试归纳:并发和JVM
归纳全面的JVM和并发容器的面试精华!!!!!!原创 2021-12-14 22:09:44 · 708 阅读 · 1 评论 -
多线程(六):并发容器类讲解
目录并发工具类并发工具类-Hashtable并发工具类-ConcurrentHashMap基本使用并发工具类-ConcurrentHashMap1.7原理并发工具类-ConcurrentHashMap1.8原理并发工具类-CountDownLatch并发工具类-Semaphore并发工具类并发工具类-HashtableHashtable出现的原因 : 在集合类中HashMap是比较常用的集合对象,但是HashMap是线程不安全的(多线程环境下可能会存在问题)。为了保证原创 2021-06-27 17:39:28 · 349 阅读 · 0 评论 -
多线程(三):生产者与消费者
3.1生产者和消费者模式概述【应用】 概述 生产者消费者模式是一个十分经典的多线程协作的模式,弄懂生产者消费者问题能够让我们对多线程编程的理解更加深刻。 所谓生产者消费者问题,实际上主要是包含了两类线程: 一类是生产者线程用于生产数据 一类是消费者线程用于消费数据 为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库 生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为 消费者只需要从共享数据区中去获取数据,并不需要关心生产者的行为原创 2021-06-25 11:09:47 · 1519 阅读 · 2 评论 -
ForkJoin框架使用和原理剖析
一:ForkJoin理解默认情况下,并行线程数量等于可用处理器的数量ForkJoinPool与其他类型的ExecutorService的区别主要在于它使用了工作窃取:池中的所有线程都试图查找和执行提交给池的任务和/或其他活动任务创建的任务(如果不存在工作,则最终阻塞等待工作)。二:重写ForkJoinTask//采用park/unpark进行重写import java.util.concurrent.Callable;import java.util.concurrent.Linke原创 2021-03-19 15:04:43 · 457 阅读 · 0 评论 -
InheritableThreadLocal解决threadlocal传递变量问题
即使JDK扩展出了一个子类:InheritableThreadLocal,它能够支持跨线程传递数据,但也仅限于父线程给子线程来传递数据。倘若两个线程间真的八竿子打不着,比如分别位于两个线程池内的线程,它们之间要传递数据该肿么办呢?这就是跨线程池之间的数据传递范畴,是本文将要讲解的主要内容。正文在实际生产中,线程一般不可能孤立的独立去运行,而是交给线程池去调度处理。所以实际上几乎没有纯正的父子线程的关系存在,而若有这种需求大多是线程池与线程池之间的线程联系。InheritableThreadLoc转载 2020-11-27 01:00:31 · 774 阅读 · 0 评论 -
ForkJoinPool 的适用场景,实现原理
ForkJoinPool 不是为了替代 ExecutorService,而是它的补充,在某些应用场景下性能比 ExecutorService 更好。ForkJoinPool 主要用于实现“分而治之”的算法,特别是分治之后递归调用的函数,例如 quick sort 等。ForkJoinPool 最适合的是计算密集型的任务,如果存在 I/O,线程间同步,sleep() 等会造成线程长时间阻塞的情况时,最好配合使用 ManagedBlocker。使用首先介绍的是大家最关心的 Fork/Join Frame转载 2020-11-25 22:52:41 · 1085 阅读 · 0 评论