并发编程
文章平均质量分 93
并发编程
天空鸟_时光不老
这个作者很懒,什么都没留下…
展开
-
第1章 多线程基础
进程可以看成是线程的容器,而线程又可以看成是进程中的执行路径。原创 2023-03-08 10:39:56 · 368 阅读 · 0 评论 -
1.6 线程池原理与实战
还有一个与shutdown()类似的方法,叫作shutdownNow(),执行shutdownNow()方法后,线程池状态会立刻变成STOP,并试图停止所有正在执行的线程,并且不再处理还在阻塞队列中等待的任务,会返回那些未执行的任务。ArrayBlockingQueue在创建时必须设置大小,接收的任务超出corePoolSize数量时,任务被缓存到该阻塞队列中,任务缓存的数量只能为创建时设置的大小,若该阻塞队列已满,则会为新的任务创建线程,直到线程池中的线程总数大于maximumPoolSize。...原创 2022-08-04 14:40:09 · 513 阅读 · 0 评论 -
1.4 线程的核心原理
接下来,对线程的6种状态以及各种状态的进入条件做一个总结。1.NEW状态通过newThread(…)已经创建线程,但尚未调用start()启动线程,该线程处于NEW(新建)状态。虽然前面介绍了4种方式创建线程,但是其中的其他三种方式本质上都是通过newThread()创建线程,仅仅是创建了不同的target执行目标实例(如Runnable实例)。2.RUNNABLE状态Java把Ready(就绪)和Running(执行)两种状态合并为一种状态RUNNABLE(可执行)状态(或者可运行状态)。...原创 2022-08-02 16:30:15 · 901 阅读 · 0 评论 -
1.2 无处不在的进程和线程
前面的示例中,所创建的Thread实例在执行完成之后都销毁了,这些线程实例都是不可复用的。在代码①处,通过Lambda表达式直接编写Runnable接口的run()方法的实现代码,接口的名称(Runnable)、方法的名称run()统统都被省略,仅剩下了run()方法的形参列表和方法体。后面介绍线程池的时候会讲到,异步执行任务在大多数情况下是通过线程池去提交的,而很少通过创建一个新的线程去提交,所以更多的做法是,通过实现Runnable接口创建异步执行任务,而不是继承Thread去创建异步执行任务。...原创 2022-08-01 13:20:29 · 353 阅读 · 0 评论 -
精通Java并发编程(第二版)第 1 章 第一步:并发设计原理
文章目录第 1 章 第一步:并发设计原理1.1 基本的并发概念1.1.1 并发与并行1.1.2 同步1.1.3 不可变对象1.1.4 原子操作和原子变量1.1.5 共享内存与消息传递1.2 并发应用程序中可能出现的问题1.2.1 数据竞争1.2.2 死锁1.2.3 活锁1.2.4 资源不足1.2.5 优先权反转1.3 设计并发算法的方法论1.3.1 起点:算法的一个串行版本1.3.2 第1步:分析1.3.3 第2步:设计1.3.4 第3步:实现1.3.5 第4步:测试1.3.6 第5步:调整1.3.7 结论原创 2021-10-13 11:01:09 · 406 阅读 · 1 评论 -
disruptor笔记1
disruptor快速启动disruptor是无锁并行框架,十分方便好用的并行框架定义event类package com.tkn.disruptor.quickstart;import lombok.Data;/** * 订单类 */@Datapublic class OrderEvent { private Long value;// 订单价格}定...原创 2019-01-04 13:32:37 · 148 阅读 · 2 评论 -
disruptor笔记2-核心链路的高级操作
disruptor 核心链路的高级操作disruptor 控制核心链路十分方便,并且可以串行,并行,菱形,多边形链路操作。启动类package com.tkn.disruptor.heigh.chain;import com.lmax.disruptor.BusySpinWaitStrategy;import com.lmax.disruptor.EventFactory;imp...原创 2019-01-08 16:41:45 · 672 阅读 · 0 评论 -
disruptor笔记3-多生产者和多消费者操作
disruptor 多生产者和多消费者单个消费者消费时,有几个消费者就需要启动几个线程,如果消费者过多,会使服务器存在党内存溢出甚至宕机的危险。但是多消费者模式,并不会存在这样的危险,多消费者使用的是线程池管理消费者线程。测试类package com.tkn.disruptor.heigh.multi;import com.lmax.disruptor.*;import com....原创 2019-01-15 14:30:35 · 1396 阅读 · 3 评论