
java多线程
文章平均质量分 90
码农的天塌了
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap 详解
它用来解决HashMap在多线程环境下不安全的问题,同时相比Hashtable和Collections.synchronizedMap()有更好的并发性能。:仅锁定单个桶(链表或红黑树的头节点),不同桶的修改互不阻塞。迁移策略:将旧数组划分为多个区间,线程协助迁移不同区间的数据。迁移时读操作:旧桶未迁移完时从旧桶读取,迁移后从新桶读取。:适用于高并发环境下的键值存储,需权衡一致性与性能。默认数组大小:16,负载因子:0.75。:每个线程负责迁移旧数组的一段区间。:红黑树的根容器,持有树的根节点。原创 2025-03-23 09:30:00 · 629 阅读 · 0 评论 -
Java ReentrantLock 详解
通过灵活的锁机制和强大的功能(如可中断、超时、公平性),弥补了的不足,适用于复杂同步场景。其核心在于 AQS 的实现,通过state和 CLH 队列高效管理锁状态和线程等待。合理使用能显著提升并发程序的健壮性和性能。原创 2025-03-22 08:00:00 · 1294 阅读 · 0 评论 -
Java synchronized 关键字详解
原理:通过 CAS 操作将 Mark Word 替换为指向线程栈中锁记录的指针。原理:在 Mark Word 中记录线程 ID,避免 CAS 操作。:每个 Java 对象在堆内存中都有一个对象头,包含。:JVM 检测到不可能存在共享竞争的锁,自动移除。:同一时刻仅允许一个线程访问该对象的同步方法。:显式指定的对象(任意对象均可作为锁)。:将连续的多个锁合并为一个,减少锁开销。:多个线程互相持有对方需要的锁。:减少锁的持有时间,提高并发性。:通过互斥锁解决多线程并发问题。:锁住类的所有实例的静态方法。原创 2025-03-21 09:43:58 · 1374 阅读 · 0 评论 -
Java多线程详解——看这一篇就够了
拒绝策略(AbortPolicy/CallerRunsPolicy/DiscardPolicy/DiscardOldestPolicy等):任务队列(ArrayBlockingQueue/LinkedBlockingQueue)多线程是Java编程的核心技术之一,能够充分利用多核CPU资源,提升程序性能。StoreStore屏障:禁止普通写与volatile写重排序。LoadStore屏障:禁止普通写与volatile读重排序。LoadLoad屏障:禁止普通读与volatile读重排序。原创 2025-03-20 13:28:26 · 824 阅读 · 0 评论