初级会员
  • 第 56545 位会员
  • COMS
  • 2020-09-15 09:26:12
  • Offline
  • 19 90

最近发布的主题

    暂无

最近发布的文章

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 2020-09-15 14:39:18 评论了主题 关于Sync.Mutex的竞争问题
    package main import ( "fmt" "strconv" "sync" "time" ) var mu sync.Mutex func produce(ch chan<- int,index chan <-int){ for i:=0;i<10;i++{ index <- 1 ch<-i fmt.Println("produce:"+strconv.Itoa(i)) } } func consumer(ch <- chan int,index <- chan int){ for i:=0;i<10;i++{ v:=<-ch fmt.Println("consumer:"+strconv.Itoa(v)) <-index } } func main(){ ch := make(chan int,5) index := make(chan int,1) go produce(ch,index) go consumer(ch,index) time.Sleep(10*time.Second) }
  • 2020-09-15 14:38:41 评论了主题 关于Sync.Mutex的竞争问题
    由于consumer里面chan没有东西而进行堵塞,导致锁无法释放!进行了饥饿状态了。如果要解决建议使用 chan 对其进行拦截,就可以实现同步了