![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 68
并发编程
让你三行代码QAQ
有道无术,术尚可求
展开
-
阻塞队列-SynchronousQueue
构造方法中可以传入一个boolean值,如果为true使用队列是数据结构,如果为false默认使用栈的数据结构,无参构造默认false。只需关心transferer变量,所有的存取数据的方法最终都是调用了transferer对象的transfer方法。从结果可以看出,栈结构后插入的数据被先消费;队列结构先添加的数据被先消费。只定义了一个抽象方法transfer。基于队列存储,遵循先进出原则。基于栈存储,遵循先进后出原则。原创 2024-07-28 15:18:06 · 375 阅读 · 0 评论 -
阻塞队列-DelayQueue
延迟队列是基于优先级队列实现,添加元素不存在阻塞情况,直接调用offer方法。调用优先级队列中的remove方法,返回堆顶元素。除非线程被打断,否则一直等到获取元素。原创 2024-07-28 15:17:13 · 279 阅读 · 0 评论 -
阻塞队列-PriorityBlockQueue
在PriorityBlackQueue中并没有基于PriorityQueue实现而是基于private transient Object[] queue自己实现的。在分析优先级别队列时候,需要了解一下二叉堆是什么。原创 2024-07-28 15:16:36 · 393 阅读 · 0 评论 -
阻塞队列-LinkedBlockingQueue
底层基于链表实现,可指定长度,不指定默认。原创 2024-07-28 15:15:42 · 351 阅读 · 0 评论 -
阻塞队列-ArrayBlockingQueue
基于数组实现队列,使用时必须指定队列长度。原创 2024-07-28 15:15:08 · 296 阅读 · 0 评论 -
阻塞队列-BlockingQueue接口
在JUC包下有个接口BlockingQueue,它继承了java.util下的Queue接口,在这个接口种规定了一些抽象方法用来存取数据。原创 2024-07-28 15:14:23 · 301 阅读 · 0 评论 -
ConditionObject
【代码】ConditionObject。原创 2024-07-28 15:12:58 · 398 阅读 · 0 评论 -
ReentrantLock源码
公平锁和非公平锁释放锁的流程一样,调用sync中的tryRelease方法。NonfairSync非公平锁中,Sync中的默认实现。FairSync公平锁中。默认构造使用非公平锁。原创 2024-07-21 21:23:14 · 169 阅读 · 0 评论 -
AQS源码
假设A、B、C三个线程,A线程持有锁,B线程先来获取锁,然后C线程获取锁。原创 2024-07-21 21:22:29 · 378 阅读 · 0 评论 -
synchronized详解
如果在一个循环内部使用synchronized,频繁的获取/释放锁消耗资源。锁膨胀就是将synchronized放到循环体外部,这样就获取/释放一次锁。可以理解为一个临界资源,在同一时间只能有一个线程操作它,实现线程之间互斥的效果。在synchronized修饰的代码块中,如果不存在操作临界资源的情况,触发锁消除,即synchronized无效。在jdk1.6之前,线程在获取不到锁后,立即挂起线程。在创建对象作为锁的时候,会在栈中生成对象的引用,引用指向堆空间,有关锁的内容。原创 2024-07-15 21:21:52 · 306 阅读 · 0 评论 -
并发编程-锁的分类
假设A线程持有锁,B线程正在等待锁,这个时候C线程来了。原创 2024-07-15 21:19:33 · 225 阅读 · 0 评论 -
多线程之线程基础
进程(process)和线程(thread):例如:在我们使用视频app看视频的时候,打开一个app就是运行一个进程,而我们同时可以看到图像、音频、弹幕等等,其中的图像、音频、弹幕分别是一个线程在同时执行任务。进程是程序执行的一个过程,动态的,是系统资源分配的最小单位;一个进程包含至少一个或包含多个线程,线程是cup调度和执行的最小单位;原创 2023-03-24 17:55:27 · 250 阅读 · 0 评论 -
多线程之线程池
线程池的本质是池化技术,所谓池化技术,是程序在运行时会占用资源,为了优化资源的使用使用池化技术。比如JDBC连接池,由于和数据库建立连接和关闭时比较消耗资源,所以事先准备好资源。线程池的优点:降低资源消耗,提高响应速度,而且方便管理,最重要的是线程服用,可以控制并发数量。原创 2022-09-22 22:36:27 · 195 阅读 · 0 评论