这段go代码卡住不动了

netaxcess · 2015-04-10 03:33:10 · 2222 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2015-04-10 03:33:10 的主题,其中的信息可能已经有所发展或是发生改变。

package main
import (
    "xiyu/models"
    //"os"
    "runtime"
    "fmt"
    //"github.com/astaxie/beego/orm"
)

func getInfos1(url,proxy string,cat_id int,goods_thumb string,id int,a,b chan bool)  {
    a<-true
    isok :=false
    defer func(){
        b<-isok
    }()
    //打印url
    fmt.Println(url)
    isok = true
}

func main() {
    NCPU := runtime.NumCPU()
    runtime.GOMAXPROCS(NCPU)
    models.Init()
    goods_url    := new(models.GoodsUrl)

    a :=make(chan bool,10)
    b :=make(chan bool,1)
    var goods_urls []*models.GoodsUrl
    count ,_ := goods_url.Query().Filter("status",0).Count()

    for i:=0;i<=int(count)/1000;i++ {
        goods_url.Query().Filter("status",0).Limit(1000,i*1000).All(&goods_urls,"Cat_id","Url","Id","Img")
        for _,v :=range goods_urls {
            //循环取得v.url
            go getInfos1(v.Url,"",v.Cat_id,v.Img,v.Id,a,b)
        }
    }
    for x :=0;x < int(count); x++ {
        <-a 
        <-b 
    }
}

代码报 a<-true 和go getInfos1(v.Url,"",v.Cat_id,v.Img,v.Id,a,b)的错误

以下是错误信息

goroutine 3643 [chan send]: main.getInfos1(0x110e55c0, 0x1b, 0x69fbd0, 0x0, 0x21, 0x11088080, 0x33, 0x1a5 0x10fe4300, 0x10fe4340) C:/GOPATH/src/xiyu/goods.go:9 +0x43 created by main.main C:/GOPATH/src/xiyu/goods.go:32 +0x41d

goroutine 3644 [chan send]: main.getInfos1(0x110e5660, 0x1b, 0x69fbd0, 0x0, 0x21, 0x11088280, 0x33, 0x1a5 0x10fe4300, 0x10fe4340) C:/GOPATH/src/xiyu/goods.go:9 +0x43 created by main.main C:/GOPATH/src/xiyu/goods.go:32 +0x41d

goroutine 3645 [chan send]: main.getInfos1(0x110e5700, 0x1b, 0x69fbd0, 0x0, 0x21, 0x11088480, 0x33, 0x1a5 0x10fe4300, 0x10fe4340) C:/GOPATH/src/xiyu/goods.go:9 +0x43 created by main.main C:/GOPATH/src/xiyu/goods.go:32 +0x41d


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2222 次点击  
加入收藏 微博
5 回复  |  直到 2015-04-19 23:14:21
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传