/ / Zu einem Zeitpunkt wird nur ein Thread ausgeführt. Wie können mehrere Aufgaben gleichzeitig ausgeführt werden? - Java, Multithreading

Zu einem Zeitpunkt wird nur ein Thread ausgeführt, wie können mehrere Aufgaben gleichzeitig ausgeführt werden? - Java, Multithreading

Klicken http://www.javatpoint.com/sleep()-method

Das Tutorial sagt nur, wenn ein Thread im Schlaf ist, wird der andere Thread vom Thread-Scheduler abgeholt.

Antworten:

3 für die Antwort № 1

Bei einem System mit mehreren Kernen würden beide Threads ungefähr zur gleichen Zeit starten (abhängig davon, wie lange es dauert, einen Thread zu erstellen).

Die Wirkung des Schlafs könnte enden"Synchronisieren" der Threads, so dass beide Threads gleichzeitig (oder fast zur gleichen Zeit) ausgeführt werden und / oder schlafen (hängt vom Betriebssystem ab). Die "Synchronisierung" würde auftreten, wenn beide Threads innerhalb eines Systemtimers gestartet wurden. Unter Windows läuft der Timer normalerweise mit 64 Hz oder 15,625 ms pro Tick, sodass beide Threads den Ruhezustand alle 32 Timer-Ticks (500 ms) mit demselben Tick verlassen.

Während eines Schlafes kann das Betriebssystem andere Threads ausführender gleiche Kern wie der Thread, der den Schlaf ausgeführt hat. In diesem Fall werden die beiden Threads gleichzeitig ausgeführt, es sei denn, das System hat nur einen einzelnen Kern (und kein Hyperthreading).

Ich gehe davon aus, dass System.out.println (i) multi-thread-sicher ist (zwei Instanzen gleichzeitig aus zwei Threads verursachen jedoch kein Problem).