PHP速学视频免费教程(入门到精通)
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
下面的代码实现了使用两个goroutine来交替打印链表中的元素。然而,它遇到了一个相当奇怪的问题,即在没有最终时间的情况下打印结果不可见。睡眠。理论上,stdout 没有缓冲区。有人可以提供一些指导吗?
import ( "context" "fmt" "sync" ) type ListNode struct { val int next *ListNode } func NewLinkedList() (head *ListNode) { var cur *ListNode for i := 0; i <h2 class="daan">正确答案</h2><p>您必须在主 Goroutine 上调用 <code>wg.Add(1)</code>,因为在 2 个启动的 Goroutine 增加 waitgroup 计数器之前 <code>main()</code> 到达 <code>wg.Wait()</code> 是一个有效的场景。如果其计数器为 0,则 <code>wg.Wait()</code> 不会阻塞,<code>main()</code> 返回,因此整个应用程序终止:</p><pre class="brush:php;toolbar:false;">wg.Add(1) go worker("a", a, b) wg.Add(1) go worker("a", a, b)
(当然,从工作人员中删除 wg.Add(1)
。)
请参阅:放置 wg.Add() 的位置
已抢7337个
抢已抢95475个
抢已抢14939个
抢已抢52728个
抢已抢195931个
抢已抢87512个
抢