デッドロックの問題が発生したと思います...私のプログラムは正常に動作していますが、時々応答しなくなります...???. ソース コード (C#) では、ロック (オブジェクト) または ReaderWriterLockSlim がありません... 同じオブジェクト (リスト) を使用して 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つのスレッドでデッドロックを再現するのを手伝ってくれませんか...
少し早いですがお礼を