![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程相关
文章平均质量分 78
单线程,多线程
苹果香蕉西红柿
这个作者很懒,什么都没留下…
展开
-
Lock 锁与 ReentrantReadWriteLock 源码解析
目录一. LockLock 锁与 synchronized 的区别Lock 常用方法与使用示例二. ReentrantReadWriteLock 一. Lock Lock 锁与 synchronized 的区别 两种锁都是重入锁 synchronized在代码执行完毕,或抛出异常时会自动释放锁,Lock锁在代码执行完毕或抛出异常不会自动释放锁,需要手动调用unlock()方法手动释放锁 Lock...原创 2020-08-25 19:10:55 · 114 阅读 · 0 评论 -
Callable与Future模式
目录使用示例Future 原理 先解释使用场景: 在多线程时,使用继承Thread类,或实现Runnable接口创建线程类,重写run()方法,方法中调用需要多线程处理的代码,执行时调用start() 方法,但是会发现一个问题,run()方法没有返回值,假设逻辑代码执行完毕后需要返回值怎么办 通过实现 Callable 接口创建线程类,Callable接口中的泛型就是返回值类型,重写接口中的ca...原创 2020-04-16 00:33:05 · 233 阅读 · 0 评论 -
队列基础使用示例与通过队列实现线程通信
目录一. 队列阻塞队列与非阻塞队列的区别:1. ConcurrentLinkedDeque并发非阻塞式队列2. BlockingQueue阻塞队列ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueueSynchronousQueue3. 通过队列实现线程通讯二. 线程池线程池的分类:线程池原理分析Executors 创建线程池自定义线程...原创 2020-04-15 16:54:02 · 223 阅读 · 0 评论 -
线程通信基础示例(synchronized 与 Lock + Condition实现线程通信)
目录总结使用 wait() 与 notify() 实现线程通讯的原理线程通讯示例使用 Condition 设置线程通讯 总结 什么是线程通讯,可以将线程分为生产者线程与消费者线程,生产者线程创建共享数据(写),给消费者线程使用(读),注意是生产一个消费一个 wait() 方法: 当调用该方法时当前线程进入等待,并释放锁 notify() 方法: 当调用该方法时,唤醒当前对象锁池中等待的线程, 注...原创 2020-04-15 00:26:01 · 96 阅读 · 0 评论