我想我遇到了死锁问题...我的程序运行良好,但有时它变得无响应...???。在源代码(C#)中..没有锁(objet)或ReaderWriterLockSlim ......我确实尝试使用相同的对象(List)重现2个线程的死锁,但没有成功..
int n = 0;
List<int> temp = new List<int>();
var up = new Thread(() =>{
for (int i = 0; i < 100000; i++){
n++;
temp.Add(i);
}
});
var down = new Thread(() => {
for (int i = 0; i < 100000; i++){
n--;
try{
temp.Remove(i);
}catch {
Console.WriteLine("No item {0} to remove", i);
}
}
});
up.Start();
down.Start();
down.Join();
up.Join();
Console.WriteLine(String.Join(",",temp));
上面的狙击代码仍然可以在没有死锁的情况下工作..??? 有人可以帮我用没有锁(对象)或系统锁的相同变量来重现2个线程的死锁...
预先感谢