gpt4 book ai didi

Java NIO 管道与阻塞队列

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:55:12 25 4
gpt4 key购买 nike

我刚刚发现它有一个 NIO 工具,即 Java NIO Pipe,它专为在线程之间传递数据而设计。与通过队列传递更传统的消息(例如 ArrayBlockingQueue)相比,使用此机制是否有任何优势?

最佳答案

通常,传递数据供另一个线程处理的最简单方法是使用 ExecutorService。这包装了一个队列和一个线程池(可以有一个线程)

当你有一个支持 NIO channel 的库时,你可以使用管道。如果您想在线程之间传递数据的 ByteBuffers,它也很有用。

否则使用 ArrayBlockingQueue 通常更简单/更快。

如果您想要一种更快的方式在线程之间交换数据,我建议您查看 Exchanger但是它不像 ArrayBlockingQueue 那样通用。

The Exchanger and GC-less Java

关于Java NIO 管道与阻塞队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7558273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com