上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 26 下一页
摘要: 类 作用 Semaphore 限制线程的数量 Exchanger 两个线程交换数据 CountDownLatch 线程等待直到计数器减为 0 时开始工作 CyclicBarrier 作用跟 CountDownLatch 类似,但是可以重复使用 Phaser 增强的 CyclicBarrier Sem 阅读全文
posted @ 2024-07-27 11:00 n1ce2cv 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Unsafe 基础 Unsafe 是 Java 中一个非常特殊的类,它为 Java 提供了一种底层、"不安全"的机制来直接访问和操作内存、线程和对象。正如其名字所暗示的,Unsafe 提供了许多不安全的操作,因此它的使用应该非常小心,并限于那些确实需要使用这些底层操作的场景。 Unsafe 在 st 阅读全文
posted @ 2024-07-27 02:16 n1ce2cv 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 原子操作的基本数据类型 基本类型的原子操作主要有这些: AtomicBoolean:以原子更新的方式更新 boolean; AtomicInteger:以原子更新的方式更新 Integer; AtomicLong:以原子更新的方式更新 Long; 这几个类的用法基本一致,这里以 AtomicInte 阅读全文
posted @ 2024-07-26 21:47 n1ce2cv 阅读(26) 评论(0) 推荐(0) 编辑
摘要: BlockingQueue 是 Java 中的一个接口,它代表了一个线程安全的队列,不仅可以由多个线程并发访问,还添加了等待/通知机制,以便在队列为空时阻塞获取元素的线程,直到队列变得可用,或者在队列满时阻塞插入元素的线程,直到队列变得可用。 最常见的"生产者-消费者"问题中,队列通常被视作线程间的 阅读全文
posted @ 2024-07-26 21:31 n1ce2cv 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。 线 阅读全文
posted @ 2024-07-26 15:38 n1ce2cv 阅读(9) 评论(0) 推荐(0) 编辑
摘要: Condition 接口一共提供了以下 7 个方法: await():线程等待直到被通知或者中断。类似于 Object.wait()。 awaitUninterruptibly():线程等待直到被通知,即使在等待时被中断也不会返回。没有与之对应的 Object 方法。 await(long time 阅读全文
posted @ 2024-07-23 16:32 n1ce2cv 阅读(20) 评论(0) 推荐(0) 编辑
摘要: ReentrantReadWriteLock 是 Java 的一种读写锁,它允许多个读线程同时访问,但只允许一个写线程访问(会阻塞所有的读写线程)。这种锁的设计可以提高性能,特别是在读操作的数量远远超过写操作的情况下。 在并发场景中,为了解决线程安全问题,我们通常会使用关键字 synchronize 阅读全文
posted @ 2024-07-23 15:08 n1ce2cv 阅读(10) 评论(0) 推荐(0) 编辑
摘要: ReentrantLock 重入锁,是实现Lock 接口 的一个类,也是在实际编程中使用频率很高的一个锁,支持重入性,表示能够对共享资源重复加锁,即当前线程获取该锁后再次获取不会被阻塞。 要想支持重入性,就要解决两个问题: 在线程获取锁的时候,如果已经获取锁的线程是当前线程的话则直接再次获取成功; 阅读全文
posted @ 2024-07-23 14:18 n1ce2cv 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 锁的分类 乐观锁、悲观锁 对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。Java 中,synchronized 关键字是最典型的悲观锁。 乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会加锁,只是 阅读全文
posted @ 2024-07-23 13:53 n1ce2cv 阅读(8) 评论(0) 推荐(0) 编辑
摘要: AQS是AbstractQueuedSynchronizer的简称,即抽象队列同步器,从字面上可以这样理解: 抽象:抽象类,只实现一些主要逻辑,有些方法由子类实现; 队列:使用先进先出(FIFO)的队列存储数据; 同步:实现了同步的功能。 AQS 是一个用来构建锁和同步器的框架,使用 AQS 能简单 阅读全文
posted @ 2024-07-21 15:46 n1ce2cv 阅读(33) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 26 下一页