凡是要用多线程,就很难绕过多个线程读写同一变量的情况,所以必须要有一个锁的操作。
我自己写了个自旋锁,但因为有一步缺少原子性操作,只好用随机数暂时顶替,这样就存在间歇性Bug。
所以,还是希望能有一个锁的函数,或者能将“步骤组”附加带有原子性的操作也可以。
我是实在没办法了,因为确实不懂C#,JavaScript也是半桶水。。
没有的。
变量冲突问题:将变量值传入子程序,每个子程序内部变量是独立的。
具体是什么样的场景需求呢?
就是我有两(多)个线程,要读写一个全局变量(列表、或字典),但读写这个全局变量的时候,一个线程在读写,另一个线程就不能读写了(怕同时操作变量有冲突),必须在临界区外面等。所以就只好需要一个线程锁,来锁这个全局变量。大部分的多线程操作,都需要这个锁来保证对变量的操作不要冲突,本来我写了一个自旋锁,但这里缺少原子性操作,所以这个锁就有bug
感谢回复,问题已经解决
操作词典里面不同的键一般没有问题。其他还是要尽量避免冲突了。quicker的多线程只适合比较简单的场景,不适合线程之间有交互的情况。