java并发
文章平均质量分 93
java并发相关的学习笔记
学、渣
这个作者很懒,什么都没留下…
展开
-
java生产者消费者模型
前言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时,生产者阻塞。基于synchronized配合wait()和notify()方法的实现这也是最简单最基础的实现,缓冲区满和为空时都调用wait()方法等待,当生产者生产了一个产品或者消费者消费了一个产品之后会唤醒所有线程。public class Test...原创 2021-12-14 17:07:15 · 4845 阅读 · 0 评论 -
ReentrantLock及Condition
ReentrantLockReentrantLock,一个可重入的互斥锁,它具有与使用synchronized方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。Condition介绍Condition是一个多线程间协调通信的工具类,使得某个或者某些线程一起等待某个条件(Condition),只有当该条件具备( signal 或者 signalAll方法被带调用)时 ,这些等待线程才会被唤醒,从而重新争夺锁。...原创 2021-12-14 14:45:34 · 832 阅读 · 0 评论 -
java并发队列
在并发队列上,JDK提供了两套实现: 1. 以ConcurrentLinkedQueue为代表的高性能队列非阻塞。 2.以BlockingQueue接口为代表的阻塞队列。无论哪种都继承自Queue。阻塞队列与非阻塞队列 阻塞队列与非阻塞队列的区别在于: 1. 当阻塞队列是空的时,从队列中获取元素的操作将会被阻塞,试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。...原创 2021-12-13 17:14:26 · 2031 阅读 · 0 评论 -
java线程池
线程池创建及重要参数:线程池可以自动创建也可以手动创建,自动创建体现在Executors工具类中,常见的可以创建newFixedThreadPool、newCachedThreadPool、newSingleThreadExecutor、newScheduledThreadPool。可以通过Executors类来创建线程池,但是不推荐。Executors类只是静态工厂,提供创建线程池的几个静态方法,而真正的线程池类是ThreadPoolExecuor。构造方法如下:转存失败重新上传取消c转载 2021-06-07 21:15:07 · 657 阅读 · 0 评论 -
ThreadLocal 子类及实现原理
我们在介绍threadLocal子类及实现原理之前,先介绍一下threadLocal类。ThreadLocal类ThreadLocal原理ThreadLocal 是为了解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal 并不是一个Thread,而是 Thread 的局部变量。ThreadLocal 用于保存某个线程共享变量:对于同一个 static ThreadLocal,其为...原创 2021-11-06 15:20:00 · 520 阅读 · 0 评论