bonjour,
Je me demandais si, en C#, des threads bloqués se débloquaient dans leur ordre d'arrivée. Ex :
Dans le code suivant, est ce que l'ordre d'affichage des objets sera toujours o1, o2, o3, o4 et o5 ? Après kk tests ca à l'air d'être ca mais je n'ai pas trouvé de doc dessus pour etre sûr...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()); } }
merci
Partager