多线程
文章平均质量分 80
Butterfly(Papillon)
我会用我的肩扛起我岁月里所有的坚强
展开
-
线程池线程保活以及动态更新线程数
* 线程保活。* 线程池如何动态更新核心线程数和最大线程数?* 提交Callable任务时,线程之间是如何传递值的?* 多余的线程是如何结束生命周期的?原创 2023-10-18 16:44:55 · 313 阅读 · 0 评论 -
线程及线程池技术原理分析
线程线程是调度CPU资源的最小单位。java线程与OS线程保持1:1的映射关系,也就是一个java线程会对应操作系统中的一个线程jdk中定义了线程的6种状态:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATEDpublic enum State { /** * Thread state for a thread which has not yet started. */原创 2022-05-03 17:18:31 · 555 阅读 · 0 评论 -
java实现管程之AQS以及ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier
管程管程是管理共享变量和对共享变量操作的过程;上文讲解了synchronized在jvm层面实现了MESA管程模型,本文阐述AQS在java层面实现MESA管程模型AQS--AbstractQueuedSynchronizerAQS是java层面实现管程的同步队列抽象类,抽象类实现管程的同步等待队列和条件等待队列;而加锁和解锁的逻辑由具体的子类实现,只是对外提供模板方法,由程序员自己实现加解锁的逻辑。AQS特性阻塞等待队列;共享/独占;公平/非公平;可重入;可中断...原创 2021-12-31 17:32:50 · 754 阅读 · 0 评论 -
java中CAS实现原理
java中在Unsafe中提供了三种CAS操作:compareAndSwapInt(),compareAndSwapObject(),compareAndSwapLong()//参数含义:对象,属性的内存偏移量,属性期望值,属性更新值public final native boolean compareAndSwapObject(Object var1, long var2, Object var4, Object var5);public final native boolean comp原创 2021-12-28 19:04:52 · 560 阅读 · 0 评论 -
java线程
线程和进程进程进程就是用来加载指令、管理内存、管理IO的操作系统以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位线程有时被称为轻量级进程,是操作系统(CPU调度)执行的最小单位进程间通信的方式管道信号消息队列共享内存套接字线程的同步互斥同步:一个线程的执行依赖另一个线程的消息,如果没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒互斥:对于共享系统资源,单个线程访问的排他性上下文切换上下文切换需要保存现场和原创 2021-12-28 15:45:48 · 320 阅读 · 0 评论 -
java ThreadLocal的使用和深入理解
博客主要介绍关于java ThreadLocal的使用和源码理解,以及它是如何实现线程安全和变量隔离的。一、结构:(这里没有画图,将就到看哈)(1).ThreadLocal跟很多集合一样是一个泛型类(2).Thread包含一个ThreadLocal.ThreadLocalMap的成员变量(组合关系),也就是每个线程维护的独立副本的变量。(3).ThreadLocal包含一个内部...原创 2019-10-21 14:29:39 · 355 阅读 · 2 评论