
并发编程
山鸡哥w
目的虽有却无路可循,我们称之为路的,无非是踌躇
展开
-
并发编程——彻底掌握CountDownLatch,CyclicBarrier和Semaphore
这里写目录标题一级目录二级目录三级目录CountDownLatchCyclicBarrier 作用代码实例演示实现原理解析Semaphore代码示例演示 一级目录 二级目录 三级目录 CountDownLatch 见前一篇:并发编程——一文看尽CountDownLatch原理 CyclicBarrier 作用 CountDownLatch是某个线程A执行的过程中,等待其他的一个或多个线程全部执行完毕,线程A再继续执行当前的流程,起到一个同步等待的作用。 CyclicBarrier(循环壁垒)同样起到一个同步原创 2020-08-24 22:56:18 · 662 阅读 · 0 评论 -
并发编程——一文看尽CountDownLatch原理
这里写目录标题一级目录二级目录三级目录CountDownLatch实际例子源码解析 一级目录 二级目录 三级目录 CountDownLatch CountDownLatch是一个同步辅助类,允许一个线程等待其他线程执行完毕再继续执行。比如现在有一个线程0在执行任务A,执行任务过程中需要等待其他线程1、线程2等先完成任务B任务C的执行,那么线程0会暂停任务A的执行,线程0阻塞,等到线程1线程2执行完毕时线程0才会继续执行。 CountDownLatch使用AQS实现线程同步,初始化时要设置一个count,表示原创 2020-08-23 00:16:05 · 443 阅读 · 0 评论 -
Java——线程池ThreadPoolExecutor 其实很简单
线程池 ThreadPoolExecutor 线程池概述:利用池化技术提高线程的利用率,减少创建和销毁的开销 降低资源的消耗,通过利用已经创建的线程,降低线程创建和销魂造成的消耗 提高响应速度,当任务到达时,可以从线程池中获取已有的线程,节省线程创建的时间 提高线程的可管理性,线程不能无限创建,使用线程池可以进行统一的分配,调优和监控 使用Executor来启动线程比使用start方法好,除了更方便管理,效率更好(节省开销)外,还有一个关键优点:有助于避免this逃逸问题 注:this逃逸是指在构造函数原创 2020-08-01 01:35:29 · 438 阅读 · 0 评论 -
AQS——从源码窥探AQS到底是什么
AQS 是什么? AQS 是一个用来构建锁和同步器的框架,使用 AQS 能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的 ReentrantLock,Semaphore,其他的诸如 ReentrantReadWriteLock,SynchronousQueue,FutureTask(jdk1.7) 等等皆是基于 AQS 的。当然,我们自己也能利用 AQS 非常轻松容易地构造出符合我们自己需求的同步器。 AQS原理 核心思想:某个线程尝试获得共享资源,当它获得共享资源时,对共享资源进行加锁,若未获得原创 2020-08-01 01:32:29 · 424 阅读 · 0 评论