多线程
文章平均质量分 97
迷路剑客
弱小和无知不是生存的障碍,傲慢才是。
展开
-
Java-多线程-ForkJoinPool
Java-多线程-ForkJoinPool转载声明本文大量内容系转载自以下文章,有删改,并参考其他文档资料加入了一些内容:小家java】Java线程池之—ForkJoinPool线程池的使用以及原理作者:YourBatman出处:CSDN转载仅为方便学习查看,一切权利属于原作者,本人只是做了整理和排版,如果带来不便请联系我删除。摘要Java 7 引入了一种新的并发框架—— Fork/Join Framework。同时引入了一种新的线程池:ForkJoinPool(ForkJoinPoo转载 2020-08-28 18:42:25 · 266 阅读 · 0 评论 -
Java-多线程-Future、FutureTask、CompletionService、CompletableFuture解决多线程并发中归集问题的效率对比
转载声明本文大量内容系转载自以下文章,有删改,并参考其他文档资料加入了一些内容:【小家Java】Future、FutureTask、CompletionService、CompletableFuture解决多线程并发中归集问题的效率对比作者:YourBatman出处:CSDN转载仅为方便学习查看,一切权利属于原作者,本人只是做了整理和排版,如果带来不便请联系我删除。摘要开启线程执行任务,不管是使用Runnable(无返回值不支持上报异常)还是Callable(有返回值支持上报异常)接口,都转载 2020-08-28 13:43:58 · 1629 阅读 · 2 评论 -
Java-多线程-线程状态
Java-多线程-线程状态1 简介Java线程并不是和Linux线程完全对等的,每个Java线程拥有NEW(新建)、RUNNABLE(就绪)、BLOCKED(阻塞)、WAITING(等待)、TIMED WAITING(计时等待)、TERMINATED(终止)。Java线程调度属于抢占式调度,线程竞争CPU时间分片来执行,一个线程运行几十毫秒中就处于RUNNING状态,而时间片用完了被剥夺CP...原创 2020-04-01 22:56:48 · 184 阅读 · 0 评论 -
Java-并发-线程池
Java-并发-线程池摘要本文简要介绍线程池,浅析其原理。0x01 基本概念1.1 Java线程池简介Java多线程环境中,使用线程池是是否必要的。在《阿里巴巴Java编码规范v1.4.0》之中,就可以看到以下描述:【强制】线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。说明:使用线程池的好处是减少在创建和销毁线程上所消耗的时间以及系统资源的开销,解决资源不足的问题。如...原创 2019-02-13 11:17:06 · 387 阅读 · 0 评论 -
Java-多线程-Thread相关方法
Java-多线程-Thread相关方法摘要Thread 相关方法,是JDK和用户编码中大量使用的最基本方法,本文会简单介绍常用的sleep, join, yield等方法,并介绍其实现原理。0x01 sleep1.1 基本概念sleep方法如其名,就是让线程休息下,直到指定时间耗尽。最大的特点就是阻塞过程中,不释放线程拥有的对象锁(ObjectMonitor)。sleep过程,会让...原创 2018-12-21 11:21:09 · 296 阅读 · 0 评论 -
Java-线程安全
Java-线程安全0x01 什么是线程安全线程安全是针对某个对象来说,如果当多线程访问此对象时,不用再用额外方式如同步锁等,总能运行获得正确结果,那就可以说这个对象代码线程安全。0x02 Java中的线程安全Java中线程安全强度由强到弱是:不可变 -> 绝对线程安全 -> 相对线程安全 -> 线程兼容 -> 线程对立2.1 不可变就是指那些一旦初始化就不可...原创 2018-12-15 22:12:11 · 298 阅读 · 0 评论 -
LockFree思想
LockFree思想0x01 摘要近期看一些源码,会有一些注释是LockFree。这到底啥玩意儿?之前我也不知道啊,遂赶紧上网查之,总结了一些东西作为记录,与大家分享。0x02 LockFree2.1 LockFree概念先上一张神图:由上图可以看出,LockFree程序必须满足三个条件:多线程共享内存不能彼此阻塞(死锁)具体来说,如果一个程序是LockFree的,则在运...原创 2018-12-09 18:33:37 · 2087 阅读 · 0 评论 -
Java-并发-锁-LockSupport
Java-并发-锁-LockSupport0x01 摘要LockSupport是用来创建锁和其他同步类的基本线程阻塞原语,他的两个主要方法park()和 unpark()的作用分别是阻塞线程和解除阻塞线程。本文简要分析下他的源码。0x02 源码解析2.1 类定义和构造方法// 该类很耿直,就是个独立的 没有什么乱七八糟的继承关系public class LockSupport { ...原创 2018-11-29 20:30:36 · 368 阅读 · 2 评论 -
Java进阶(二)当我们说线程安全时,到底在说什么
Java进阶(二)当我们说线程安全时,到底在说什么转载声明:本文系转载自技术世界:作者: Jason Guo转载仅为方便学习查看,一切权利属于原作者,本人只是做了整理和排版,如果带来不便请联系我删除。0x01 摘要提到线程安全,可能大家的第一反应是要确保接口对共享变量的操作要具体原子性。实际上,在多线程编程中我们需要同时关注可见性、顺序性和原子性问题。本篇文章将从这三个问题出...转载 2018-11-28 23:27:20 · 164 阅读 · 0 评论 -
Java-多线程-ThreadLocal全解析
Java-多线程-ThreadLocal0x01 摘要本文简单分析下ThreadLocal实现原理,再附上小例子。0x02 ThreadLocal是什么ThreadLocal提供线程级别的私有局部变量。这些变量和普通变量不同之处在于,通过get或set方法访问这类变量的每个线程都拥有一份独立初始化的变量副本。ThreadLocal通常用private static修饰,可以将状态与该线程...原创 2018-11-14 19:24:29 · 980 阅读 · 0 评论 -
Java-并发-自己实现阻塞队列
并发学习-自己实现阻塞队列0x01 摘要其实BlockingQueue简单来说就是一个put锁,一个take锁,还有一个放入的元素形成的Node队列。这篇文章,我们通过写代码实现一个简易的阻塞队列来进一步加深对阻塞队列的印象和理解。 0x02 CustomBlockingQueue在这里,我们通过代码简单实现了一个阻塞队列的基本功能: /** * Cr...原创 2018-09-12 22:20:27 · 1201 阅读 · 0 评论