1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| public void fonctionGlobale ()
{
//creation de cinq objets
Object o1 = new Object();
Object o2 = new Object();
Object o3 = new Object();
Object o4 = new Object();
Object o5 = new Object();
//création et lancement des threads
Thread t1= new Thread(new ParameterizedThreadStart(functionLock));
Thread t2= new Thread(new ParameterizedThreadStart(functionLock));
Thread t3= new Thread(new ParameterizedThreadStart(functionLock));
Thread t4= new Thread(new ParameterizedThreadStart(functionLock));
Thread t5= new Thread(new ParameterizedThreadStart(functionLock));
t1.Start(o1);
t2.Start(o2);
t3.Start(o3);
t4.Start(o4);
t5.Start(o5);
//ici on a 5 threads qui tournent ensemble, lekelle se réveillera le premier?
}
public static void functionLock(Object o){
lock (locker) //partie critique
{
Sleep(5000);
Console.Writeline(o.ToString());
}
} |
Partager