java多线程
panda-star
时常进步,每次进步一步
展开
-
LockSupport使用
LockSupport使用文章目录LockSupport使用一、简介二、分析2.1 源码2.2 实现三、使用示例一、简介LockSupport是线程同步工具,定义了一组静态方法控制控制线程的阻塞和同步。二、分析2.1 源码LockSupport源码不长,方法及其用法请看源码注释,源码如下:package java.util.concurrent.locks;import sun.m...原创 2020-04-06 23:41:31 · 280 阅读 · 0 评论 -
java线程状态
java线程状态文章目录java线程状态一、简介二、分析2.1 源码2.2 分析2.2.1 NEW2.2.2 RUNNABLE2.2.3 BLOCKED2.2.4 WAITING2.2.5 TIMED_WAITING2.2.6 TERMINATED3.3 状态转移图三、备注3.1 查看线程状态一、简介java线程状态描述了线程的运行情况,理解其有助于线程使用和排查问题。二、分析java线...原创 2020-04-02 23:30:48 · 120 阅读 · 0 评论 -
线程辅助类(五)–Phaser
线程辅助类(五)–Phaser文章目录线程辅助类(五)--Phaser一、简介二、关键点2.1 new Phaser(n)2.2 重写onAdvance方法2.3 phaser.arriveAndAwaitAdvance()2.4 phaser.arriveAndDeregister()2.5 phaser.isTerminated()三、使用示例:一、简介Phaser是一类线程辅助类,它可...原创 2020-03-16 00:04:51 · 117 阅读 · 0 评论 -
线程辅助类(四)–CyclicBarrier
线程辅助类(四)–CyclicBarrier文章目录线程辅助类(四)--CyclicBarrier一、简介二、关键点三、使用示例一、简介CyclicBarrier是一类线程辅助类,用于在多个线程间,在某一个点相互等待,待所有线程都到齐后,每个线程再接着往下执行,在同步点,可以操作执行(由最后一个到达同步点的线程执行)。二、关键点new CyclicBarrier(n) ,即初始化时,...原创 2020-03-15 11:00:57 · 98 阅读 · 0 评论 -
线程辅助类(三)–Semaphore
线程辅助类(三)–Semaphore一、简介Semaphore,即是信号量机制,学过操作系统的同学应该会容易理解。这里是java多线程中的辅助类。它通常用在多访问者场景下,控制同时访问临界资源的访问者数量。二、关键点初始化时指定同时可访问的数量,如new Semaphore(3),即可同时访问数量为3;等待获取访问临界资料的权限,即semaphore.acquire();访问临界资料...原创 2020-03-15 10:54:42 · 124 阅读 · 0 评论 -
线程辅助类(二)–CountDownLatch
线程辅助类(二)–CountDownLatch文章目录线程辅助类(二)--CountDownLatch一、简介二、关键点三、使用示例一、简介CountDownLatch是一个线程辅助类,通常用于:多个子线程均完成某项操作后,主线程才进行自己的操作。二、关键点初始化,约定需多少个子线完成,如new CountDownLatch(5),即5个子线程;countDownLatch.coun...原创 2020-03-15 10:48:37 · 97 阅读 · 0 评论 -
线程辅助类(一)–Exchanger
线程辅助类(一)–Exchanger文章目录线程辅助类(一)--Exchanger一、简介二、关键点三、使用示例一、简介Exchanger是java线程辅助类,用于在两个线程间,在某一同步点,进行数据交换。二、关键点泛型定义数据交换的类型,如Exchanger exchanger = new Exchanger<>();exchanger.exchange(data...原创 2020-03-15 10:45:07 · 116 阅读 · 0 评论 -
java中ThreadLocal使用
java中ThreadLocal使用文章目录java中ThreadLocal使用一、简介二、使用三、原理3.1 Thread类3.2 ThreadLocal类3.2.1 主要方法3.2.2 ThreadLocal.ThreadLocalMap内部类3.2.3 ThreadLocal.ThreadLocalMap.Entry内部类3.3 注意四、示例一、简介ThreadLocal是java线程...原创 2020-03-11 23:57:52 · 2944 阅读 · 0 评论 -
多线程中的volatile关键字
多线程中的volatile关键字文章目录多线程中的volatile关键字一、简介二、特点2.1 可见性2.1.1 功能2.1.2 原理2.2 有序性2.2.1 功能2.2.2 原理2.3 原子性一、简介volatile是多线程中的关键字,保证共享变量的可见性,开销小,没有线程上下的切换调度,这里进行介绍。二、特点volatile可以保证可见性和有序性,但不能保证原子性(特别注意)。2....原创 2020-03-10 22:50:42 · 250 阅读 · 0 评论 -
java多线程同步机制AQS解读
java多线程同步机制AQS解读文章目录java多线程同步机制AQS解读一、简介二、AQS核心知识点2.1 AQS同步器类定义2.2 核心实现2.2.1 FIFO同步队列2.2.1.1 同步队列解释2.2.1.2 同步队列源码2.2.1.3 同步队列安全保证2.2.2 同步状态2.2.2.1 同步状态源码2.2.2.2 同步状态安全保证2.2.2.3 同步状态使用2.3 同步实现2.4 使用方式...原创 2020-02-07 21:30:15 · 431 阅读 · 0 评论 -
java线程执行器框架介绍(二)--ScheduledThreadPoolExecutor
在java多线程操作中,我们有时需要延时或才周期性的执行某些执行,这时我们可以使用ScheduledThreadPoolExecutor。一、工厂类Executors生成的ScheduledThreadPoolExecutor1、newSingleThreadScheduledExecutor,单个线程2、newSingleThreadScheduledExecutor,指定线程二原创 2017-06-09 23:55:14 · 423 阅读 · 0 评论 -
java线程执行器框架介绍(一)--ThreadPoolExecutor
在java多线程开发中,当我们需要批量执行多个任务线程时,可以使用java的执行器框架。也就是Executors工厂类生成的各种Executor实现类。我们在这里介绍ThreadPoolExecutor。1、由Executors工厂类生成的ThreadPoolExecutor包含如下几类:a)newCachedThreadPool,不指定线程个数,通常用于执行线程不多的情况;b原创 2017-06-09 22:27:00 · 453 阅读 · 0 评论