繁体   English   中英

ConcurrentLinkedQueue有什么用?

[英]What is the use of ConcurrentLinkedQueue?

我在 android kotlin 从事蓝牙工作。我找到了这个有福的图书馆,而这个 class BluetoothPeripheral正在使用ConcurrentLinkedQueue 我不明白有什么用

private val commandQueue: Queue<Runnable> = ConcurrentLinkedQueue()

我正在查看这个enqueue function,我无法理解这里的用例。 作者在这里想达到什么目的?

这个enqueue function 在不同的地方调用,即readCharacteristic这个 function 的用例是什么?

谢谢

基于@broot 的评论:

  1. ConcurrentLinkedQueuejava.util.concurrent package 的一部分,它是线程安全的 collections
  2. Queue是一种专为高效添加和删除而设计的集合。 通常他们提供先进先出。
  3. 如果您有一个处理高吞吐量任务的应用程序,生产者将项目放入队列中,消费者接收它们。 根据哪个更快,您可能拥有比消费者线程更多的生产者线程,反之亦然。 您通过使用线程安全队列实现进程隔离,例如ConcurrentLinkedQueue
  4. 一些 Queue 实现具有有限的容量,但像ConcurrentLinkedQueue这样的队列基于链表,因此通常具有更大的容量,但这意味着某些操作(例如搜索)可能执行得不太好。
  5. 还有一个Dequeue ,它是一个Queue ,您可以轻松地从两端删除项目。

我不知道蓝牙应用程序是关于什么的,也不知道它为什么需要ConcurrentLinkedQueue ,所以我无法评论它是否是“在蓝牙情况下使用的最佳选择”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM