java多线程并发系列
文章平均质量分 86
java多线程并发学习与记录
文曰老康
这个作者很懒,什么都没留下…
展开
-
AQS、ReentrantLock实现原理
大纲:什么是AQS:AQS( AbstractQueuedSynchronizer )是一个用来构建多线程访问共享资源的同步器抽象框架,只需要继承 AQS 就可以很方便的实现我们自定义的多线程同步器、锁,是典型的模板设计模式,父类定义好骨架和部分内部操作细节,具体规则由子类去实现。是整个JUC包的基石,ReentrantLock、ReadWriteLock、CountDowndLatch、CyclicBarrier、Semaphore、ThreadPoolExe...原创 2022-05-12 10:17:01 · 221 阅读 · 0 评论 -
LongAdder类实现原理、源码解析
1. 概述AtomicLong通过循环CAS实现原子操作,缺点是当高并发下竞争比较激烈的时候,会出现大量的CAS失败,导致循环CAS次数大大增加,这种自旋是要消耗时间cpu时间片的,会占用大量cpu的时间,降低效率。那这个问题如何解决呢?JUC给我们提供了一个类,LongAdder, 它的作用和AtomicLong是一样的,都是一个实现了原子操作的累加器,LongAdder通过维护一个基准值base和 Cell 数组,多线程的时候多个线程去竞争Cell数组的不同的元素,进行cas累加操作...原创 2022-04-25 21:44:41 · 3340 阅读 · 0 评论 -
java多线程学习<二>--多线程常用方法
创建方式thread线程创建的三种方式_NokeNoke的博客-CSDN博客线程的启动过程Java线程 start()方法执行后,会向操作系统去请求创建一个线程返回给JVM,JVM接收到线程创建成功之后会等待操作系统调度,系统激活线程后执行任务应用层:通过实现一个 Runnable接口,然后将接口的实例作为参数传递到JDK提供的Thread类中。JDK层:通过JNI的方式来调用给JVM虚拟机。线程调度模块:根据当前运行的操作系统来调用对应的系统线程触发接口来创建具体的线程进行执行.转载 2022-03-14 14:42:04 · 298 阅读 · 0 评论 -
Java多线程学习<一>--什么是多线程及其优劣势
为什么需要多线程 计算机cpu从单核到多核, 需要处理的任务也越来越多,多线程的出现,便是为了更好的利用多核cpu的利用率 cpu在读取L1,L2,内存,磁盘的数据的时候,速度差距很大,导致cpu空余时间一直在等待状态,性能浪费,在cpu空余的时候,如果去执行其他任务,就会将其性能充分地利用起来 线程的创建相对于进程而言开销更小,而且线程间通讯也更加方便,线程与线程之间就如同同一个房间不同的座位一样,而进程之间就如同同一个屋檐下的相对独立的不同房间多线程是什么从资料的中linux原创 2022-03-08 14:07:09 · 210 阅读 · 0 评论