Ich bin ein bisschen im Moment fragen. Ich las gerade ein wenig über Threads und landete dort: Task vs Thread Unterschiede [Duplizieren] hier auf stackoverflow von Jacek (Entschuldigung kann nicht einen Link erstellen, weil ich nur 2 mit Ruf <Gleichzeitig laufen Threads geben verschiedene Zahlen
und den ersten Kommentar von machen kann MoonKnight hat mich dorthin geführt: albahari.com/threading
Ich habe den Code genommen und ein wenig geändert, um es lesbarer zu machen was passiert. Hier kommt mein geänderten Code:
static void Main()
{
Thread t = new Thread(WriteY); // Kick off a new thread
t.Start(); // running WriteY()
// Simultaneously, do something on the main thread.
for (int i = 0; i < 10; i++) { System.Threading.Thread.Sleep(1); Console.Write(i); };
Console.ReadLine();
}
static void WriteY()
{
for (int y = 0; y < 10; y++) { System.Threading.Thread.Sleep(1); Console.Write(y); };
Console.ReadLine();
}
, was ich geschehen erwartet (und was die meiste Zeit geschieht) wurde dies: Gut Thema:
aber hier ist die Sache, über die ich frage mich (seine absolut zufällig und versprach, den gleichen Code):
Wunder thread:
meine Fragen:
1.Wie kann das passieren, dass es verschiedene Zahlen gibt, die die Threads immer zur gleichen Zeit laufen sollten, sollten sie nicht?
2.all dies wird mehr verrückt desto geringer ist die Schlafzeit wird so, wenn Sie es vollständig entfernen Fell es absolut zufällig
* "Die Threads sollten immer gleichzeitig laufen?" * - Nein. Stellen Sie sich vor, was erforderlich wäre, um sicherzustellen, dass die beiden Schleifen in den beiden Fäden bei jedem Schritt synchronisiert wurden. Es ist möglich, aber Sie müssten eine Menge Code schreiben, um das zu ermöglichen. Viele, viele Prozesse und Threads laufen auf Ihrem Computer. Sie bekommen jeweils ein bisschen Zeit, um ihr Ding zu machen. Threading ist unordentlich. Das Santa-Claus-Level-Wunder wäre, wenn zwei Threads, die mit identischem Code laufen, immer die gleichen Dinge tun, die dem Benutzer * zur gleichen Zeit erschienen. –
Wenn Sie sie synchronisieren möchten, verwenden Sie einen geeigneten Mechanismus –
@ed ich sehe Dank für die schnelle Antwort – Pr0gr4mm3r