线程安全
文章平均质量分 93
Jack_abu
搬砖这么多年,开始沉淀点东西吧
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
详解java中的ConcurrentSkipListMap
ConcurrentSkipListMap是Java并发包中的线程安全有序映射实现,基于跳表数据结构。它支持自然排序或自定义比较器,提供高效的并发访问能力。核心特性包括:采用多层链表结构实现快速查找;使用CAS操作保证并发安全;查找、插入、删除操作均为O(logn)时间复杂度。适用于需要高并发有序访问的场景,如实时排行榜、范围查询等。相比TreeMap具有更好的并发性能,相比ConcurrentHashMap则提供有序性支持。使用时需注意禁止null键值、内存开销较大等限制。原创 2025-12-24 17:03:34 · 1038 阅读 · 0 评论 -
详解java中的线程间协作工具:CountDownLatch,Semaphore,CyclicBarrier(二)
Java并发编程中的三大同步工具类各有特点:CountDownLatch用于一次性线程同步,通过计数器实现主线程等待多个子线程完成;Semaphore通过许可证机制控制资源并发访问,支持动态调整许可证数量;CyclicBarrier则实现多线程循环同步,屏障触发后可重置复用。此外,Exchanger支持线程间数据交换,Phaser提供更灵活的多阶段同步能力。这些工具基于AQS实现,适用于不同并发场景,开发者可根据任务特性选择合适的同步机制。原创 2025-12-19 20:08:25 · 789 阅读 · 0 评论 -
详解java中的BlockingQueue阻塞队列
Java的BlockingQueue是并发编程中实现生产者-消费者模式的核心工具,提供线程安全的阻塞操作。主要实现类包括基于数组的ArrayBlockingQueue、链表的LinkedBlockingQueue、优先级的PriorityBlockingQueue等,各有适用场景。通过锁机制和条件变量保证线程安全,支持阻塞/非阻塞操作及超时控制。典型应用于线程池任务队列、消息传递和流量控制。使用时需注意死锁风险、无界队列的内存问题及性能优化。原创 2025-12-18 20:25:40 · 915 阅读 · 0 评论 -
Java中的Thread、ThreadLocalMap、ThreadLocal三者之间的关系,ThreadLocalMap.Entry的弱引用设计
ThreadLocal通过ThreadLocalMap实现线程隔离存储,每个线程持有独立的ThreadLocalMap,通过ThreadLocal的set/get方法存取数据。弱引用设计允许ThreadLocal实例被GC回收,但需配合remove()清理残留值,尤其在线程池场景中。相比同步锁,ThreadLocal以空间换时间实现无锁线程安全,适用于数据库连接、会话管理等场景。最佳实践包括及时清理和避免存储大对象,平衡线程安全与内存管理原创 2025-11-03 19:38:28 · 730 阅读 · 0 评论
分享