幻辰子 2018-07-29 09:23 采纳率: 0%
浏览 677
已结题

为何GOLANG的CHANNEL这么用要报错?

其实我就是希望获取共享变量

 package main

import (
    "fmt"
    //"time"
)

var ch chan bool
var lock chan bool
var msg string

func main() {
    ch = make(chan bool)
    lock = make(chan bool)
    msg = ""
    for i := 0; i < 10; i++ {
        go bingfa(i)
    }
    for j := 0; j < 10; j++ {
        <-ch
    }
    fmt.Println("-------------")
}
func bingfa(i int) {
    lock <- true
    msg = fmt.Sprint(msg, "-", i)
    fmt.Println(msg)
    <-lock
    ch <- true
}

  • 写回答

3条回答 默认 最新

  • oyljerry 2018-07-30 03:15
    关注

    具体错误是什么,是不是你的chan是无缓冲,会死锁

      ch = make(chan boo, 1l)
        lock = make(chan bool, 1)
    
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)