晨读管理员
  • 第 6 位会员
  • jianfengye110
  • 叶剑峰
  • jianfengye110@gmail.com
  • 2013-03-16 12:31:48
  • Offline
  • 17 90

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 手动点赞
  • 赞啊
  • 评论了博文 goroutine与调度器
    这篇说的真好,复杂的东西说到简单了
  • 评论了博文 golang sync.Cond
    主goroutine里面的lock和unlock优点多余 ```go package main import ( "fmt" "sync" "time" ) func main() { wait := sync.WaitGroup{} locker := new(sync.Mutex) cond := sync.NewCond(locker) for i := 0; i < 3; i++ { go func(i int) { defer wait.Done() wait.Add(1) cond.L.Lock() fmt.Println("Waiting start...") cond.Wait() fmt.Println("Waiting end...") cond.L.Unlock() fmt.Println("Goroutine run. Number:", i) }(i) } time.Sleep(2e9) cond.Signal() time.Sleep(2e9) cond.Signal() time.Sleep(2e9) cond.Signal() wait.Wait() } ```
  • 评论了博文 golang sync.Mutex
    例子换成 ```go package main import ( "fmt" "sync" "time" ) var l sync.Mutex var m *sync.Mutex func main() { m = new(sync.Mutex) go lock(1) go lock(2) time.Sleep(4 * time.Second) fmt.Printf("%s\n", "exit!") } func lock(i int) { println(i, "lock start") m.Lock() println(i, "lock") time.Sleep(2 * time.Second) m.Unlock() println(i, "unlock") } ``` 就更有说服力了