queue - 是否可以将 Go 的缓冲 channel 用作线程安全队列?

标签 queue go channel

我想找到一个队列结构(一个数据容器),它的元素必须是先进先出的。对我来说,结构必须是线程安全的很重要。我打算将此数据容器用作任务或连接池之类的东西。

我知道缓冲 channel 是线程安全的,但我想知道它是否可以用作 FIFO,尤其是在并发情况下。

如果可以将缓冲 channel 用作线程安全队列,我是否需要担心它的效率?

最佳答案

在 Go 中,缓冲 channel 就是:线程安全的 FIFO 队列,因此您尝试做的事情是完全有效的。使用这种方法根本不会出现性能问题。

关于queue - 是否可以将 Go 的缓冲 channel 用作线程安全队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10424144/

相关文章:

c++ - for循环只循环3次

go - Bosun 添加外部收集器

testing - Golang 测试 : "no test files"

go - 如何通过调用结构方法来启动/停止功能

javascript - 编写一个反射(reflect)堆栈行为的函数,但带有队列......?

ruby-on-rails - 如何将 Sidekiq (Redis) 队列移动到另一台服务器?

java - 队列和映射类型功能的混合

file - 在 Go 中将多个结构写入一个文件

java - 通知 channel - 设置后是否可以更改 LightColor?

go - Go 中如何比较来自 channel 的值