【问题标题】:Is there any way to make Go's channels behave like a stack有没有办法让 Go 的通道表现得像一个堆栈
【发布时间】:2013-07-19 06:40:40
【问题描述】:

据我所知,默认情况下,Go 通道的行为类似于队列,先进先出。有什么办法可以将它们更改为后进先出?

基本上我在做一个搜索,并想用 DFS 而不是 BFS 来解决内存限制。

【问题讨论】:

    标签: stack queue go channel


    【解决方案1】:

    不,这是不可能的——通道总是先进先出的。你可以使用包container/heap

    【讨论】:

    • 很困惑,因为我的代码 sn-p 似乎表明先发送的内容最后收到play.golang.org/p/SJ_dnzuDjsJ
    • goroutine 执行的顺序是不确定的。尝试在本地多次执行您的代码并观察顺序。 Go Playground 缓存结果。
    • 深入挖掘,我读到 go 缺乏同步 golang.org/ref/mem .. 如果需要,他们建议“显式同步”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多