11 2023 档案

摘要:线程池 线程池简介 线程池(thread pool):一种线程的使用模式。线程过多会带来调度的开销,进而影响局部和整体性能。而线程池维护多个线程,等待着监督管理者分派并发执行的任务。这避免了在处理短时间任务时创建和销毁线程的代价。线程池不仅能够保证内核的充分使用,还能防止过分调度线程。 10多年前的 阅读全文
posted @ 2023-11-28 22:44 长名06 阅读(62) 评论(0) 推荐(0) 编辑
摘要:BlockingQueue阻塞队列 BlockingQueue简介 juc包下,BlockingQueue很好的解决了多线程中,高效安全的"传输数据"问题。 阻塞队列,是一个队列,可以是数据从队列的一端输入,从另一端输出。 当队列空时,从队列获取元素线程被阻塞,直到其他线程向空的队列插入新元素。 当 阅读全文
posted @ 2023-11-26 17:38 长名06 阅读(76) 评论(0) 推荐(0) 编辑
摘要:ReentrantReadWriteLock读写锁 乐观锁和悲观锁 乐观锁 乐观锁,就是给需要共享的数据,添加一个版本号version,例如1,每次有线程更新共享数据后,version+1,每次线程进行数据更新时,要比较当前线程持有的数据的版本号,相等则修改,不相等则不修改,支持并发访问。 悲观锁 阅读全文
posted @ 2023-11-24 22:34 长名06 阅读(70) 评论(0) 推荐(0) 编辑
摘要:JUC的强大辅助类 juc中提供了常用的辅助类,通过这些辅助类,可以很好的解决线程数量过多时,Lock锁的频繁操作这三种辅助类为: 1.CountDownLatch,减少计数。 2.CyclicBarrier,循环栅栏。 3.Semaphore,信号灯。 减少计数器(CountDownLatch) 阅读全文
posted @ 2023-11-22 23:07 长名06 阅读(117) 评论(0) 推荐(0) 编辑
摘要:Callable接口和Future接口 创建线程的方式 1.继承Thread类2.实现Runnable接口3.Callable接口4.线程池方式 Callable接口 在继承Thread类和实现Runnable接口的方式创建线程时,线程执行的run方法中,返回值是void,即无法返回线程的执行结果, 阅读全文
posted @ 2023-11-20 23:53 长名06 阅读(99) 评论(0) 推荐(0) 编辑
摘要:常见锁介绍 synchronized锁的八中情况 package com.shaonian.juc.more_thread_lock; import java.util.concurrent.TimeUnit; class Phone { public static synchronized voi 阅读全文
posted @ 2023-11-12 23:21 长名06 阅读(85) 评论(0) 推荐(0) 编辑
摘要:ArrayList在多线程情况下,不安全 具体代码 package com.shaonian.juc.list_thread_secure; import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * 阅读全文
posted @ 2023-11-02 21:56 长名06 阅读(63) 评论(0) 推荐(0) 编辑