go连接mysql产生大量连接

gofile · · 5110 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

一直是这个问题困扰着哦我,为什么越来越多连接,到爆掉,换作postgresql驱动也是,还是我理解go语言并发有错呢 package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "strconv" "time" ) var xiancheng = 10 var over = make(chan bool) var sem = make(chan int, xiancheng) func checkErr(err error, hh int) { if err != nil { fmt.Printf("error "+strconv.Itoa(hh)+"\n", err) panic(err) } } func getMySQL2() *sql.DB { db, err := sql.Open("mysql", "root:123456789@tcp(127.0.0.1:3306)/getbbs?charset=utf8") checkErr(err, 999) return db } func work(aa int) string { sem <- 1 dbx := getMySQL2() defer dbx.Close() _, e2 := dbx.Query("select 1") if e2 == nil { println("DB OK:", aa) } time.Sleep(time.Second * 1) fmt.Println("work id:", aa) if aa == 9999 { gocheck2() } <-sem return "ok" } func gocheck2() { over <- true } func main() { for i := 0; i < 10000; i++ { go work(i) } <-over } 请这里的高手帮帮忙

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

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

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