• 评论了主题 关于go执行报错
    go run main.go v1.go v2.go 或者 go run *.go 或者go build,之后再运行
  • <a href="/topics/11704#comment19" title="19">#19<span>楼</span></a> <a href="/user/jarlyyn" title="@j...
  • 不能期望所有goroutine按照期望的顺序执行代码。 就像你期望goroutine_01 使用countlocker 加锁进行 count--之前,另外一个goroutine_02能获取到coun...
  • sync.Mutex没有bug,是你的代码的bug。 我举的是只是例子而已。实际上有可能是两个goroutine,其中一个count--后从map删除Locker,之后又来一个goroutine获取...
  • 你这个代码有bug: 我举一个极端的例子: 假设有10个并发传入了相同的key,其中`goroutine_01`先进行`count++`并获取了`Locker`结构体 另外9个卡在了`l := ...
  • &gt; *那就再加个计数,在计数为0后再delete元素就可以了* 这个你不用channel的话, `counter++` `counter--` `if counter ==0`,等相关代码,没...
  • 看了下你这个代码,确实不能实现并发时同一个key加锁先后执行: 假设有10个并发同时调用`Locker(&#34;key1&#34;)`,然后其中一个执行完毕并调用`l.Map.Delete(l.K...
  • 第一次unlock后就释放整个key的锁: 有点类似cache,第一次取的时候缓存没有,需要加锁获取到缓存里,后续直接从缓存获取。可以参考The Go Programming Language的第9章...
  • 评论了主题 切片的坑特别多
    切片背后是数组,数组长度是不变的,切片长度是可变的。 切片背后可以看作是结构体,包含三部分:(数组第一个元素地址,len,cap) `myTest := testList`这句话可以看作结构体的值...