
多线程
春秋_XH
Just do it
展开
-
【转载】一个 JDK 线程池 BUG 引发的 GC 机制思考
一个 JDK 线程池 BUG 引发的 GC 机制思考上面文章中提到的finalize方法。下面是这个方法的一个学习链接:Java学习笔记—— finalize() 方法原创 2022-01-28 15:15:29 · 322 阅读 · 0 评论 -
【分布式锁的实现02】基于Redis的实现
这里总结下几篇比较好的博客:Redis 分布式锁的正确实现方式( Java 版 )Redis分布式锁 (图解-秒懂-史上最全)原创 2022-01-27 10:50:27 · 190 阅读 · 0 评论 -
【分布式锁的实现01】基于 Zookeeper 的实现
网上有很多大佬总结的非常棒。这里列举自己认为讲的不错的博客:1、Zookeeper分布式锁原创 2022-01-26 17:06:21 · 1533 阅读 · 0 评论 -
【JUC源码学习04】Condition实现等待通知机制
Condition实现等待通知机制提供类似 Object 的监视器方法,配合 Lock 可以实现等待/通知模式。当前线程调用 Condition对象中的方法时,要先获取 Lock对象(即锁),再由 Lock 对象创建出来。使用方法简单:在调用前要先获取锁。Condition 对象是依赖 Lock 对象的。一、接口分析1、Lock接口java.util.concurrent.locks.Lockpublic interface Lock { void lock(); void原创 2022-01-26 11:39:03 · 375 阅读 · 0 评论 -
【JUC源码学习04】LockSupport 工具
LockSupport 工具当需要阻塞或者唤醒一个线程的时候,都会使用 LockSupport 工具类来完成响应工作。LockSupport 定义了一组的公共静态方法,这些方法提供了最基本的线程阻塞和唤醒功能。以 park()开头的来阻塞线程以 unpark()开头的来唤醒线程一、阻塞线程1、park(Object blocker)blocker对象用来标识当前线程在等待的对象(阻塞对象)。该对象主要用于问题排查和系统监控。 public static void park(Object bl原创 2022-01-26 11:37:53 · 127 阅读 · 0 评论 -
【JUC源码学习03】读写锁(ReentrantReadWriteLock)学习
读写锁(ReentrantReadWriteLock)学习一、读写锁概述1、读写锁:维护了一对锁,一个读锁,一个写锁,通过分离读锁和写锁,使得并发性能比一般的排他锁有了很大的提升。2、过程:同一时刻,可以允许多个读线程进行访问;在写线程访问时,其他读线程和其他写线程均(其他读写操作)被阻塞。等当前写操作完成释放锁后,所有操作继续执行。3、一般情况下,读写锁性能比排他锁性能好,因为大多数场景读是多余写的。在读多余写的情况下,读写锁能提供比排他锁更好的并发性和吞吐量。=4、ReentrantReadW原创 2022-01-26 11:36:49 · 326 阅读 · 0 评论 -
【JUC源码学习02】重入锁(ReentrantLock)学习
重入锁(ReentrantLock)学习重入锁:也是排他锁:即在同一时刻只允许一个线程进行访问。一、公平和非公平获取锁的区别1、公平获取与非公平获取两者对比公平锁:每次都是从同步队列中的第一个节点获取到锁非公平性锁:每个线程可以连续多次获取锁TODO: 缺图非公平锁缺点:非公平锁,可能使线程“饥饿”,饥饿出现的情况。饥饿的原因:当一个线程请求锁时,只要获取了同步状态即成功获取锁。在这个前提下,刚释放锁的线程再次获取同步状态的几率非常大,使得其他线程只能在同步队列中等待。2原创 2022-01-26 11:34:55 · 6018 阅读 · 0 评论 -
【Java线程池实现原理及其在美团业务中的实践】
链接:1、https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html2、https://juejin.cn/post/6922069411981426702原创 2022-01-24 10:52:03 · 160 阅读 · 0 评论