随笔分类 -  JAVA

摘要:Semaphore源码分析 Semaphore的作用是在有限的资源里,当有N个线程进行访问时,如何进行资源的分配。 基本的使用方法是,创建一个Semaphore实例,并且指定permit的个数,当线程要获取许可时调用acquire()方法,当释放许可时调用release()方法,当没有可用的许可时, 阅读全文
posted @ 2020-09-10 17:40 辣鸡小篮子 阅读(509) 评论(0) 推荐(0) 编辑
摘要:CyclicBarrier源码分析 CyclicBarrier的作用是让一组线程互相等待至某个状态后并行执行(相对外部来说是并行,其实内部还是串行) 基本的使用方法是创建一个CyclicBarrier实例,并且指定parties的个数,然后线程依次调用CyclicBarrier的await()方法让 阅读全文
posted @ 2020-09-08 17:37 辣鸡小篮子 阅读(570) 评论(0) 推荐(1) 编辑
摘要:CountDownLatch源码分析 CountDowntLatch的作用是让主线程等待所有的子线程执行完毕之后再进行执行,同时它是基于AQS进行实现的,所以它底层肯定是通过自定义AQS共享模式下的同步器来实现的,该同步器需要重写AQS提供的tryAcquireShared()以及tryReleas 阅读全文
posted @ 2020-09-07 14:32 辣鸡小篮子 阅读(390) 评论(0) 推荐(0) 编辑
摘要:ReentrantLock源码分析 ReentrantLock是独享锁,同时是基于AQS实现的,因此它底层肯定是通过自定义AQS独占模式下的同步器来实现独享锁,该同步器需要重写AQS提供的tryAcquire()和tryRelease()方法,只需要告诉AQS是否尝试获取同步资源和释放同步资源成功即 阅读全文
posted @ 2020-09-06 23:50 辣鸡小篮子 阅读(382) 评论(0) 推荐(0) 编辑
摘要:AQS源码分析 AQS全称AbstractQueuedSynchronizer(抽象队列同步器) AQS中维护了一个被volatile修饰的int类型的同步状态state,以及CLH等待队列。 state同步状态用于维护同步资源被使用的情况,AQS本身并不关心state的值及其含义,完全由AQS的子 阅读全文
posted @ 2020-09-05 22:10 辣鸡小篮子 阅读(1010) 评论(1) 推荐(1) 编辑
摘要:JAVA中的NIO 标准的IO是基于字节流和字符流进行操作的,而JAVA中的NIO是基于Channel和Buffer进行操作的。 传统IO NIO 核心模块 NIO主要有三个核心部分:Selector、Channel、Buffer 数据总是从Channel读取到Buffer或者从Buffer写入到C 阅读全文
posted @ 2019-11-07 10:59 辣鸡小篮子 阅读(2906) 评论(0) 推荐(0) 编辑
摘要:1.简介 使用线程池可以避免线程的频繁创建以及销毁。 JAVA中提供的用于实现线程池的API: Executor、ExecutorService、AbstractExecutorService、ThreadPoolExecutor、ForkJoinPool都位于java.util.concurren 阅读全文
posted @ 2019-03-14 19:04 辣鸡小篮子 阅读(862) 评论(0) 推荐(2) 编辑
摘要:1.简介 JAVA中实现加锁是通过Synchronized关键字以及java.util.concurrent包下的相关类。 Java提供的用于实现加锁的相关API: Lock提供了比使用Synchronized同步方法和同步语句块更广泛的锁定操作。 2.java.util.concurrent包 L 阅读全文
posted @ 2018-09-27 16:25 辣鸡小篮子 阅读(664) 评论(0) 推荐(0) 编辑
摘要:1.简介 JProfiler是一个商业授权的Java剖析工具,用于分析Java EE和Java SE应用程序。 2.JVMTI JDK本身定义了目标明确并功能完善的JNI(Java Native Interface)与虚拟机直接进行交互,这些 API 能很方便的进行扩展,从而满足开发者各种需求。 J 阅读全文
posted @ 2018-08-03 17:40 辣鸡小篮子 阅读(802) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示