java并发
文章平均质量分 93
低效的奋斗者
最底层的搬砖人
展开
-
java并发之ThreadPoolExecutor
一、Java线程模型 在Linux中的线程模型分为两种:ULT(用户线程模型)线程的的生命周期是由应用自己去管理。KLT(内核线程模型)用户的生命周期是由Linux的内核进行管理。在java中使用的是KLT的线程模型,Java线程和操作系统层面上的线程是一一对应的。 线程作为一组任务任务的执行单元自然也有自己的生命周期。在Java中的线程生命周期分为如下的几个: 新建状态(NEW)。当使用new关键字创建实例化一个线程对象的时候的线程就是处于新建状态。 可运行态(RUNNABLE)。当线程调用star原创 2021-06-28 13:08:01 · 240 阅读 · 0 评论 -
抽象队列同步器AQS应用之Lock详解
一、ReentrantLock的使用 public class AQSLock { private static int count = 0; private static ReentrantLock lock = new ReentrantLock(true); public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch =原创 2021-05-31 00:24:52 · 224 阅读 · 0 评论 -
线程生命周期
线程生命周期 一、Java线程生命周期 新建状态(NEW) 线程已经被创建,但是还不准分配CPU进行运行。这个是在每一种编程状态特有的。就像在java中使用new Thread()创建一个线程对象。此时的线程就处于一个新建状态。这也就是在创建一个线程对象之后调用run方法就和运行普通的方法一样的原因。本质上都是都在调用线程中调用对象方法。 可运行状态(RUNNABLE) 新创建的线程对象已经可以分配CPU,根据不同的调度算法只要有空闲的CPU分配到时候,线程就可以真正的开始运行。此时的线程在已经在原创 2020-12-23 21:44:41 · 100 阅读 · 0 评论 -
线程
线程 一、用户空间内核空间 用户空间:是所有正常用户进程运行的位置,就像在我们自己电脑上的IDEA,PostMan等这些用户软件。在用户空间运行的进程只能访问除了内核空间之外其他的部分。运行这个用户空间的代码不能之间访问内核空间,但是如果一定要访问那如何处理呢?可以通过内核空间提供的接口(系统调用)实现对内核空间的访问,在执行系统调用的时间,会有用户空间的进程发出系统调用的请求,这时候会有一个软件中断信号发送到内核,内核会分配对应的中断处理程序。在处理完成之后返回,用户空间代码继续执行。 内核空间:原创 2020-12-20 16:02:44 · 127 阅读 · 1 评论