![](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 · 78 阅读 · 0 评论 -
Callable和Future模式
Callable带有返回值的线程创建Runnable和Thread的方式创建线程,能够看到 run() 方法返回值为void,都没有办法获取到线程计算的返回值,为了解决这一问题Callable诞生了,整体感觉比较简单,就是创建一个可以获取返回结果的线程而已,下面从几方面说一下 Callable和Runnable两个的区别:① Runnable没有返回值,Callable有返回值,同时Callable可以设置获取返回值的超时时间② Runnable无法抛出异常,Callable可以获取到异常可原创 2021-06-24 09:40:04 · 94 阅读 · 0 评论 -
java中的线程池 ThreadPoolExecutor
线程池的基本工作流程和核心参数线程池构造函数中的核心参数十分重要,理解好了这几个核心参数,是使用线程池和了解其原理的必要条件,因为不同的参数,会导致线程池的工作状态不同。从ThreadPoolExecutor的构造函数可以看到,里面有7个核心参数,下面针对每个参数进行说明一下。corePoolSize: 核心池大小(运行线程) maximumPoolSize:池中允许的最大线程,这个参数表示了线程池中最多的线程数量,当队列满了之后,会判根据maximumPoolSize判断是否需要创建新的线程原创 2021-06-23 11:26:27 · 432 阅读 · 0 评论 -
几种锁的说明
在平时开发中,存在很多种锁,今天对几种锁都进行简单的说明一下。它们分别是悲观锁、乐观锁、可重入锁、读写锁、CAS(无所机制)、自旋锁今天比较深入讨论的是前几种锁的定义,关于CAS...原创 2021-06-17 09:24:44 · 154 阅读 · 0 评论 -
多线程中的计数、信号量
CountDownLatchCountDownLatch是jdk1.5并发包中提供的工具类,主要作用是作为线程之间基数使用。废话不多先上代码:下面的代码,期望子线程全部都zhixin原创 2021-06-15 16:35:01 · 521 阅读 · 0 评论 -
ThreadLocal 的几点说明
简单定义和代码ThreadLocal 提供线程本地变量。方式变量的线程安全问题。猜测实现方式是使用map,保存线程中本地变量的内容,废话不多直接先上代码。原创 2021-06-13 12:15:52 · 218 阅读 · 0 评论 -
volatile 的几点说明
java内存模型:其实就是分为两部分,第一部分为主内存区,第二部分为各个线程的本地内存区,当两个线程同时操作某一个变量的时候,会把这个变量从主内存区拷贝到本地内存区,fenb原创 2021-06-10 21:44:21 · 70 阅读 · 0 评论