随笔分类 -  多线程相关

ThreadLocal 替代synchronized 写法
摘要:public class Test { public static void main(String[] args) { ThreadPoolExecutor executor = new ThreadPoolExecutor(20,20,0L, TimeUnit.SECONDS,new Linke 阅读全文

posted @ 2021-09-12 21:55 潮流教父孙笑川 编辑

Atomic 原子类
摘要:基本类型 使用原子的方式更新基本类型 AtomicInteger:整形原子类 AtomicLong:长整型原子类 AtomicBoolean:布尔型原子类 数组类型 使用原子的方式更新数组里的某个元素 AtomicIntegerArray:整形数组原子类 AtomicLongArray:长整形数组原 阅读全文

posted @ 2020-10-23 18:24 潮流教父孙笑川 编辑

线程池,重要参数,拒接策略,阻塞队列。补充线程池的5种状态,分析线程池源码
摘要:使用线程池的好处: 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。 阅读全文

posted @ 2020-10-23 18:16 潮流教父孙笑川 编辑

ThreadLocal ,使用场景,内存泄漏问题。更正对threadlocal的理解。SimpleDateFormat中使用了threadlocalMap
摘要:set方法 public void set(T value) { Thread t = Thread.currentThread(); //获取当前线程 ThreadLocalMap map = getMap(t); //获取当前线程的threadlocalmap,不是threadlocal的,th 阅读全文

posted @ 2020-10-23 17:55 潮流教父孙笑川 编辑

ReentrantLock 和 synchronized
摘要:synchronized 是依赖于 JVM 实现的 ReentrantLock 是 JDK 层面实现的(也就是 API 层面,需要 lock() 和 unlock() 方法配合 try/finally 语句块来完成),所以我们可以通过查看它的源代码,来看它是如何实现的。 相比synchronized 阅读全文

posted @ 2020-10-23 17:45 潮流教父孙笑川 编辑

sleep() 方法和 wait() 方法区别和共同点
摘要:两者最主要的区别在于:sleep 方法没有释放锁只是让出CPU等待指定时间,而 wait 方法释放了锁 。 两者都可以暂停线程的执行。 Wait 通常被用于线程间交互/通信,sleep 通常被用于暂停执行。 wait() 方法被调用后,线程不会自动苏醒,需要别的线程调用同一个对象上的 notify( 阅读全文

posted @ 2020-10-23 15:12 潮流教父孙笑川 编辑

线程,进程的关系,从JVM角度看。为什么要有多线程。破坏死锁的条件
摘要:进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。 线程与进程相似,但线程是 阅读全文

posted @ 2020-10-23 14:42 潮流教父孙笑川 编辑

AQS ,模板方法
摘要:参考https://www.javadoop.com/post/AbstractQueuedSynchronizer 提到的 ReentrantLock,Semaphore,其他的诸如 ReentrantReadWriteLock,SynchronousQueue,FutureTask 等等皆是基于 阅读全文

posted @ 2020-08-26 19:36 潮流教父孙笑川 编辑

synchronized 关键字,底层原理,锁膨胀,锁优化。补充的:对象组成
摘要:synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行 synchronized关键字最主要的三种使用方式: 修饰实例方法: 作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁 修饰静态 阅读全文

posted @ 2020-08-06 22:42 潮流教父孙笑川 编辑

为什么会有偏向锁。轻量级锁
摘要:偏向锁不经过操作系统内核,不需要从用户态到内核态 例如StringBuffer,大多数情况下是没有竞争的,为了效率不需要重量级锁、 轻量级锁,while循环占用cpu,不适合多线程的情况 阅读全文

posted @ 2020-08-04 21:42 潮流教父孙笑川 编辑

CountDownLatch的理解和使用。保证分支任务完成后,再跑主线程
摘要:CountDownLatch的理解和使用 在笔者想要了解Thrift时候,找到一个博主写的系统间通信技术的架构设计,在了解和学习的过程中遇到很多小问题和基础知识,自己还是不够清楚,就查询和总结下。 因为笔者也都是从网上找的一些资料,好的资料笔者都是自己收敲一遍,这样觉得能够加深下印象,引发更多的思考 阅读全文

posted @ 2020-03-15 08:38 潮流教父孙笑川 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示