java
文章平均质量分 92
apollo2018
这个作者很懒,什么都没留下…
展开
-
java线程池源码分析
文章目录1、线程池的基本工作原理2、线程池源码分析1.线程池状态变化2.工作线程执行流程 1、线程池的基本工作原理 在java中为了提高线程的利用率提出了java线程池的概念,讲一些线程放入线程池中统一管理调配,使用者需要线程来执行任务时将任务(实现了Runnable接口或Callable接口的类,区别在于是否会有返回值)提交给线程池,线程池就会将任务分配给管理的线程执行,从而使用者不用再关心线程的创建和调度,并且池中的线程可以循环使用执行不同的任务,减小了线程创建与销毁的消耗(线程的创建需要内核态和用户态原创 2021-01-23 17:36:23 · 139 阅读 · 0 评论 -
AQS(队列同步器)的FIFO问题
AQS(队列同步器)的FIFO问题 最近学习java的并发多线程,看的是《java并发编程的艺术》这本书。书中讲到了java中Lock接口的具体实现,依赖的就是AQS(AbstractQueuedSynchronized)架构。AQS中一个Volatile int 变量state来记录同步状态。每次lock时会调用aqs的tryAcquire()方法尝试获得同步状态(具体是获取state判断并用cas操作修改state),当获取不成功时就会将其加入aqs中的等待队列,当获得同步状态的线程释放锁时,才会唤醒等原创 2020-08-11 18:04:24 · 580 阅读 · 0 评论 -
jvm初识(一)jvm相关概念以及类加载
jvm初识(一)jvm相关概念以及类加载 一、java虚拟机的概念 jvm即java虚拟机,所有的java程序都要编译为.class文件由ClassLoader加载到jvm中才能运行。jvm是一个运行平台,依赖于操作系统,类似于操作系统于物理机的关系,不论各种物理机的区别如何,只要安装了windows系统,windows平台上的软件就可以在机器上执行,具体底层的转换实现由windows平台去负责。这就是java可移植性强的原因,编程者只管编译出符合jvm规范的字节码,由jvm负责转换会符合各种操作系统的命令原创 2020-08-08 16:20:12 · 159 阅读 · 0 评论