问题:
多线程运行时死亡机问题很频繁!
推理:
看源码推理,发现 Queue<T>这样的泛型不是线程安全的.
验证:
将 Queue<T> 换成 Queue 类,并以 lock(Queue 类实体.SynRoot) { //todo } 这样的形式.后问题明显没有.
解决办法:
在入队出队时一定要加个锁.
如
lock(Queue 类实体.SynRoot) { //todo }
或
lock(泛型实体){ //todo }
问题:
多线程运行时死亡机问题很频繁!
推理:
看源码推理,发现 Queue<T>这样的泛型不是线程安全的.
验证:
将 Queue<T> 换成 Queue 类,并以 lock(Queue 类实体.SynRoot) { //todo } 这样的形式.后问题明显没有.
解决办法:
在入队出队时一定要加个锁.
如
lock(Queue 类实体.SynRoot) { //todo }
或
lock(泛型实体){ //todo }