• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Java 并发零碎记录持续更新

武飞扬头像
msxq2015
帮助1

1. BlockingDeque 和 BlockingQueue

    BlockingDeque 双端阻塞队列

    BlockingQueue 阻塞队列:生产和消费

    背压解释

 背压管理

  如果生产者和消费者线程之间的队列是Java BlockingQueue,那么您可以使用该队列进行背压管理。这是生产者消费者模式的另一个内置特性。

背压意味着,如果生产者线程产生的工作多于消费者线程能够处理的工作 - 任务将在队列中排队。在某个时候,BlockingQueue 将变满,并且生产者线程将被阻止尝试将新任务/工作对象插入队列。这种现象称为背压。系统向生产者施压——在“管道”的开头——阻止更多的工作进入。

背压将“溢出”队列,并减慢生产者线程。因此,如果整个管道中有任何更早的步骤,它们也可以将压力传播到工作管道。

来自:The Producer Consumer Pattern

2.并发库

面向 Java 编程语言用户的 Guava 和 RxJava,以及我们推荐给 Kotlin 用户的协程

java.util.concurrent

https://developer.android.com/reference/java/util/concurrent/package-summary

3. LinkedBlockingDeque

     最好使用LinkedBlockingDeque(int capacity) ,指定容量,否者默认的为   Integer#MAX_VALUE 会导致内存不足。

4.ConcurrentMap

 提供Map线程安全和原子性保证

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcbkha
系列文章
更多 icon
同类精品
更多 icon
继续加载