![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
knowledge are power
这个作者很懒,什么都没留下…
展开
-
线程池手写
阻塞队列 class BlockingQueue<T> { // 1. 任务队列:队尾添加,队首移出 private Deque<T> queue = new ArrayDeque<>(); // 2. 锁 private ReentrantLock lock = new ReentrantLock(); // 3. 生产者条件变量 private Condition fullWaitSet = lock.newCond原创 2022-05-10 22:10:01 · 239 阅读 · 0 评论 -
JUC 全套(1)
进程与线程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的 当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。 进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程(例如记事本、画图、浏览器等),也有的程序只能启动一个实例进程(例如网易云音乐、360 安全卫士等) 线程 一个进程之内可以分为一到多个线程。 一个线原创 2022-04-21 22:37:00 · 180 阅读 · 0 评论 -
JUC 线程工具类基本使用
import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; public class CountDownLatchDemo { static CountDownLatch downLatch = new CountDownLatch(10); public static void mai原创 2021-12-08 18:37:00 · 79 阅读 · 0 评论 -
CompletableFuture
非阻塞的异步调用 异步任务结束时,会自动回调某个对象的方法 异步任务出错时,会自动回调某个对象的方法 主线程设置好回调后,不再关心异步任务的执行 public class CompletableFutureTest { public static void main(String[] args) throws Exception { // 创建异步执行任务: CompletableFuture<Double> cf = CompletableFuture.supplyAsync(原创 2021-12-25 15:47:44 · 136 阅读 · 0 评论 -
线程方法详解
线程停止工作 1:自然执行完 2:抛出异常 3:stop() , resume() , suspend() :强制停止线程,会造成资源的无法释放 4:interrupt() : 中断一个线程,并不是强制停止。打个招呼 isInterrupted() : 判断线程是否处于中断状态 static 方法的 interrupted() 方法:判断线程是否处于中断状态,并把标志位改为false 5:一个方法如果抛出InterruptedException,会把中断的标志位改为false,需要在catch中手动终止 s原创 2020-09-12 22:59:53 · 88 阅读 · 0 评论