
并发编程
文章平均质量分 95
MoCrane
华为云享专家、Java领域创作者,曾获国家级荣誉4项,省级及校级荣誉近10项,奖学金3次,已有专利一项、软件著作权二项。主要学习研究Java领域,欢迎大家一起学习交流。
展开
-
【并发编程】线程池参数及创建方法
线程池就是管理一系列线程的资源池。当有任务要处理时,直接从线程池中获取线程来处理,处理完之后线程并不会立即被销毁,而是等待下一个任务。为什么要使用线程池?使用线程池的好处降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。原创 2024-05-27 11:18:22 · 1248 阅读 · 0 评论 -
【并发编程】全面解析volatile和synchronized关键字
偏向锁会偏向第一个获得它的线程,如果接下来的执行过程中,该锁没有被其他线程获取,则持有偏向锁的线程不需要再进行同步。的低两位用于表示锁的状态,分别为"01"(无锁状态)、“01”(偏向锁状态)、“00”(轻量级锁状态)和"10"(重量级锁状态)。是相对基于OS的互斥量实现的重量级锁而言的,它的本意是在没有多线程竞争的前提下,减少传统的重量级锁使用OS的互斥量而带来的性能消耗。锁粗化是指将多个连续的、临近的小范围锁操作合并为一个更大的锁操作,以减少加锁和解锁的频率,从而提高性能。原创 2024-09-10 15:09:14 · 1161 阅读 · 0 评论 -
【并发编程】从AQS机制到同步工具类
Java 的 AbstractQueuedSynchronizer(AQS)借鉴了 CLH 锁的思想,并在此基础上做了诸多改进,使其更适合构建高效、可扩展的同步器。AQS 使用了显式的双向链表来维护等待队列,而不是隐式的单向链表。这样改进的好处是,它允许 AQS 更方便地处理队列中的节点操作,比如取消、唤醒特定节点等。原创 2024-08-30 18:23:41 · 929 阅读 · 0 评论