看起来问题在于您从未实例化互斥体。运行该
New()函数时,您正在创建一个空的Queue,其中包含一个可以引用互斥量的变量,但实际上您从未告诉过它这样做,这意味着在这一点上
queue.lock== nil。您可以通过在
New()函数中添加实例化行来解决此问题。
queue.lock = new(sync.Mutex)
这是一个有效的游乐场演示:http :
//play.golang.org/p/Qa6buDaHIj

看起来问题在于您从未实例化互斥体。运行该
New()函数时,您正在创建一个空的Queue,其中包含一个可以引用互斥量的变量,但实际上您从未告诉过它这样做,这意味着在这一点上
queue.lock== nil。您可以通过在
New()函数中添加实例化行来解决此问题。
queue.lock = new(sync.Mutex)
这是一个有效的游乐场演示:http :
//play.golang.org/p/Qa6buDaHIj