萌新求助 这个代码为什么输出结果不是10啊
go语言吧
全部回复
仅看楼主
level 1
每次输出的结果还不一定 1 2 3 4 5 6 都有 求助老哥们[惊哭]
2020年09月09日 00点09分 1
level 1
虽然把map改成channel 再给channel里添加i就可以了
但是我就是想知道我这个map为什么不对 [惊哭]
2020年09月09日 00点09分 2
level 5
刚刚试了下,问题出在m[i]=i这里,你可以打印一下map里面的数据看下,这个i只能取到10至于你说的chan也是10个10
2020年09月13日 04点09分 3
你多输出几次 我输出的时候 有3 4 5 6都有 就是没有10 也不知道问题怎么解决 换成channel倒是能解决 但是这个互斥锁不知道哪里出的问题[泪]
2020年09月13日 04点09分
level 5
2020年09月13日 05点09分 4
level 5
这样
2020年09月13日 05点09分 5
这样就好了么 我回去试试
2020年09月13日 05点09分
level 11
你go开辟线程那个方法要把i传入啊,否则新线程读取到i早已经进入到下一次循环了
2020年10月21日 04点10分 6
level 11
主线程是不会等你开辟的线程的,你新建一个线程与主线程是无关的,主线程马上就进入到了下一个循环,这时候i肯定不等于0了
2020年10月21日 04点10分 7
level 11
但是如果你把i传入,你新建线程的时候就带了当前循环的i,甚至不用加锁
2020年10月21日 04点10分 8
懂了 已经 [滑稽][滑稽]但是来的太晚了
2020年10月21日 04点10分
1