![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java多线程
文章平均质量分 75
MG-net
这个作者很懒,什么都没留下…
展开
-
Fork/Join
介绍 Fork/Join 是jdk1.7 提供的任务处理框架,主要思想是把线程任务分割成多个子线程进行处理,然后把子线程合并,最后得到处理结果,也是也就是分而治之的思想。 在Fork/Join的过程中,有一中工作思想叫做“工作窃取”。 工作窃取(work-stealing)的主要思想,是在多核环境中,把主任务分割成多个子任务,交给多个CPU去处理,当有CUP处于闲置的状态的时候,就会窃取其他CPU的子任务,这样可以大大的提高整体的工作效率。 下面简单编写一个例子: ...原创 2021-07-05 15:45:33 · 71 阅读 · 0 评论 -
Callable和Future模式
Callable带有返回值的线程创建 Runnable和Thread的方式创建线程,能够看到 run() 方法返回值为void,都没有办法获取到线程计算的返回值,为了解决这一问题Callable诞生了,整体感觉比较简单,就是创建一个可以获取返回结果的线程而已,下面从几方面说一下 Callable和Runnable两个的区别: ① Runnable没有返回值,Callable有返回值,同时Callable可以设置获取返回值的超时时间 ② Runnable无法抛出异常,Callable可以获取到异常 可原创 2021-06-24 09:40:04 · 84 阅读 · 0 评论 -
java中的线程池 ThreadPoolExecutor
线程池的基本工作流程和核心参数 线程池构造函数中的核心参数十分重要,理解好了这几个核心参数,是使用线程池和了解其原理的必要条件,因为不同的参数,会导致线程池的工作状态不同。 从ThreadPoolExecutor的构造函数可以看到,里面有7个核心参数,下面针对每个参数进行说明一下。 corePoolSize: 核心池大小(运行线程) maximumPoolSize:池中允许的最大线程,这个参数表示了线程池中最多的线程数量,当队列满了之后,会判根据maximumPoolSize判断是否需要创建新的线程原创 2021-06-23 11:26:27 · 419 阅读 · 0 评论 -
几种锁的说明
在平时开发中,存在很多种锁,今天对几种锁都进行简单的说明一下。它们分别是悲观锁、乐观锁、可重入锁、读写锁、CAS(无所机制)、自旋锁 今天比较深入讨论的是前几种锁的定义,关于CAS ...原创 2021-06-17 09:24:44 · 147 阅读 · 0 评论 -
多线程中的计数、信号量
CountDownLatch CountDownLatch是jdk1.5并发包中提供的工具类,主要作用是作为线程之间基数使用。废话不多先上代码: 下面的代码,期望子线程全部都zhixin原创 2021-06-15 16:35:01 · 502 阅读 · 0 评论 -
ThreadLocal 的几点说明
简单定义和代码 ThreadLocal 提供线程本地变量。方式变量的线程安全问题。 猜测实现方式是使用map,保存线程中本地变量的内容,废话不多直接先上代码。原创 2021-06-13 12:15:52 · 207 阅读 · 0 评论 -
volatile 的几点说明
java内存模型: 其实就是分为两部分,第一部分为主内存区,第二部分为各个线程的本地内存区,当两个线程同时操作某一个变量的时候,会把这个变量从主内存区拷贝到本地内存区,fenb原创 2021-06-10 21:44:21 · 62 阅读 · 0 评论