var (r0,dt0) = Test(() =>
var th0 = new Thread(() =>
for (int i = 0; i != N; ++i)
var th1 = new Thread(() =>
for (int i = 0; i != N; ++i)
var (r1, dt1) = Test(() =>
var mutex = new object();
var th0 = new Thread(() =>
for (int i = 0; i != N; ++i)
var th1 = new Thread(() =>
for (int i = 0; i != N; ++i)
var (r2, dt2) = Test(() =>
var mutex = new object();
var th0 = new Thread(() =>
for (int i = 0; i != N; ++i)
var th1 = new Thread(() =>
for (int i = 0; i != N; ++i)
Console.WriteLine($"Sans synchro : {r0} obtenu en {dt0} tics");
Console.WriteLine($"Avec synchro : {r1} obtenu en {dt1} tics");
Console.WriteLine($"Avec synchro : {r2} obtenu en {dt2} tics");
static (T,long) Test<T>(Func<T> f)
var sw = new System.Diagnostics.Stopwatch();
return (res, sw.ElapsedTicks);