亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通道/ Goroutines拋出錯誤

通道/ Goroutines拋出錯誤

Go
慕森王 2021-05-03 16:28:49
我目前正在關注本教程http://www.miek.nl/files/go/20120807-go.pdf,并在第7章中討論了渠道/ goroutines但是,示例代碼在運行后立即對我拋出錯誤。package mainimport (    "fmt"    "time")var c chan intfunc ready(w string, sec int) {    time.Sleep(time.Duration(sec) * time.Second)    fmt.Println(w, "is ready!")    c <- 1}func main() {    c := make(chan int)    go ready("Tea", 2)    go ready("Coffee", 1)    fmt.Println("Waiting...")    <-c    <-c}這是執行代碼時的輸出daniel:go> go run goroutines.go Waiting...Coffee is ready!Tea is ready!throw: all goroutines are asleep - deadlock!goroutine 1 [chan receive]:main.main()    /home/daniel/Dropbox/code/go/goroutines.go:21 +0xeegoroutine 2 [syscall]:created by runtime.main    /build/buildd/golang-1/src/pkg/runtime/proc.c:221goroutine 3 [chan send (nil chan)]:main.ready(0x80bb0d4, 0x3, 0x2, 0x0)    /home/daniel/Dropbox/code/go/goroutines.go:13 +0xe5created by main.main    /home/daniel/Dropbox/code/go/goroutines.go:18 +0x5egoroutine 4 [chan send (nil chan)]:main.ready(0x80bba30, 0x6, 0x1, 0x0)    /home/daniel/Dropbox/code/go/goroutines.go:13 +0xe5created by main.main    /home/daniel/Dropbox/code/go/goroutines.go:19 +0x80goroutine 5 [timer goroutine (idle)]:created by addtimer    /build/buildd/golang-1/src/pkg/runtime/ztime_386.c:69exit status 2我的代碼有問題嗎?
查看完整描述

1 回答

?
弒天下

TA貢獻1818條經驗 獲得超8個贊

是的,只是一個錯字:


package main


import (

    "fmt"

    "time"

)


var c chan int


func ready(w string, sec int) {

    time.Sleep(time.Duration(sec) * time.Second)

    fmt.Println(w, "is ready!")

    c <- 1

}


func main() {

    c = make(chan int) // previously c := make(chan int)

    go ready("Tea", 2)

    go ready("Coffee", 1)

    fmt.Println("Waiting...")

    <-c

    <-c

}

main()c因為它聲明了一個新的全局變量,所以沒有使用它。


請注意,您不必main()在聲明以下內容的內部創建頻道:


var c = make(chan int)


查看完整回答
反對 回復 2021-05-17
  • 1 回答
  • 0 關注
  • 232 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號