随笔分类 -  Java / 并发编程

摘要:1、LinkedBlockingQueue使用 LinkedBlockingQueue的使用案例详情如下: 1 import java.util.concurrent.LinkedBlockingDeque; 2 import java.util.concurrent.LinkedBlockingQ 阅读全文
posted @ 2023-05-17 17:00 无虑的小猪 阅读(78) 评论(0) 推荐(0) 编辑
摘要:ReentrantLock是互斥锁,若存在读多写少同时保证线程安全的场景,ReentrantLock效率比较低,此时需要用到ReentrantReadWriteLock。 一、ReentrantReadWriteLock介绍 ReentrantReadWriteLock是可重入的读写锁,实现了Rea 阅读全文
posted @ 2023-05-08 09:05 无虑的小猪 阅读(125) 评论(0) 推荐(0) 编辑
摘要:一、ReentrantLock介绍 ReentrantLock是JDK1.5引入的,实现Lock接口的互斥锁。保证多线程的环境下,共享资源的原子性。与Synchronized的非公平锁不同,ReentrantLock的实现公平锁、非公平锁。ReentrantLock是重入锁,重入是指,同一个线程可以 阅读全文
posted @ 2023-05-08 08:39 无虑的小猪 阅读(249) 评论(0) 推荐(0) 编辑
摘要:1、CyclicBarrier的介绍 CyclicBarrier 被称为栅栏,允许一组线程相互等待,直到这一组线程都准备完毕,放行,程序方可继续执行。 就好像做摩天轮,游乐园规定,至少有9个游客乘坐摩天轮,管理员才可以启动摩天轮,游客数和管理员少一个条件,摩天轮都不会启动。 2、CyclicBarr 阅读全文
posted @ 2023-05-06 09:12 无虑的小猪 阅读(83) 评论(0) 推荐(0) 编辑
摘要:ConditionObject是AbstractQueuedSynchronizer(AQS)实现的内部类,类图如下: 1、Condition接口 ConditionObject实现了Condition接口。先来看看Codition接口。 Codition中主要定义了挂起线程和唤醒线程的接口方法。C 阅读全文
posted @ 2023-05-06 09:02 无虑的小猪 阅读(108) 评论(0) 推荐(0) 编辑
摘要:1、ArrayBlockingQueue使用 ArrayBlockingQueue的使用案例详情如下: 1 import java.util.concurrent.ArrayBlockingQueue; 2 3 public class TestArrayBlockingQueue { 4 5 pu 阅读全文
posted @ 2023-04-27 23:11 无虑的小猪 阅读(50) 评论(0) 推荐(0) 编辑
摘要:1、Semaphore介绍 计数信号量 - Semaphore,常用来限制访问资源的线程数量。优点类似限流中的令牌桶算法,只有拿到信号量的线程才能执行,与令牌桶算法未拿到令牌不处理请求不同的是,在Semaphore中未拿到信号量的线程会阻塞等待,直到有某个线程释放了持有的信号量。 2、Semapho 阅读全文
posted @ 2023-04-27 22:19 无虑的小猪 阅读(103) 评论(0) 推荐(0) 编辑
摘要:1、CountDownLatch介绍 CountDownLatch让一个或多个线程等待其他线程执行完成后再执行。在创建CountDownLatch对象时,必须指定线程数count,每当一个线程执行完成调用countDown()方法,线程数count减1,当count减到0时,await()方法就不再 阅读全文
posted @ 2023-04-27 21:59 无虑的小猪 阅读(95) 评论(0) 推荐(0) 编辑
摘要:1、Callable 与 FutureTask介绍 1.1、Callable 创建线程有两种方式,一种是继承Thread类,一种是实现Runnable接口重写run方法。其实Thread也实现了Runable接口。 在Runable接口中,仅有一个无参无返回结果的run方法。Runable接口详情: 阅读全文
posted @ 2023-04-24 08:43 无虑的小猪 阅读(39) 评论(0) 推荐(0) 编辑
摘要:1、Synchronized是什么 Synchronized是Java中的关键字。 2、Synchronized的作用 Synchronized可避免多线程同时操作临界资源,同一时间点,只会有一个线程操作临界资源,保证了操作的原子性。 3、Synchronized的使用 Synchronized可以 阅读全文
posted @ 2023-04-20 14:52 无虑的小猪 阅读(57) 评论(0) 推荐(0) 编辑
摘要:一、什么是ThreadLocal ThreadLocal是线程内的局部变量,仅在线程的生命周期内起作用。变量值在线程间不可见。 二、ThreadLocal的使用 ThreadLocal使用详情如下: 1 import java.util.concurrent.CountDownLatch; 2 3 阅读全文
posted @ 2023-04-05 17:39 无虑的小猪 阅读(49) 评论(0) 推荐(0) 编辑
摘要:1、什么是线程 线程是CPU调度执行的基本单元。 JVM允许在一个程序中同时执行多个线程,在Java中,用java.lang.Thread这个类来表示线程。 线程有优先级,高优先级的线程往往会比低优先级的线程先执行。 守护线程(daemon Thread),主线程执行完,守护线程跟着结束。 2、Th 阅读全文
posted @ 2023-04-03 10:26 无虑的小猪 阅读(68) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示