Das laufende Ergebnis des folgenden Programms () (wählen Sie eines aus)
public static void main(String[] args) { Thread t=new Thread(){ public void run(){ pong(); } }; t.run(); System.out.println("ping"); } static void pong(){ System.out.println("pong"); }
A 🎜 >B. Pongping
Sowohl Pingpong als auch Pongping sind möglich
Keine Ausgabe
Antwort: BAnalyse: Um einen Thread zu starten, müssen Sie die Methode start() aufrufen und die Methode t.run() verwendet den Objektnamen. Analyse: Um einen Thread zu starten, müssen Sie die Methode start() aufrufen und die Methode t.run() verwenden .run()-Methode verwendet den Objektnamen
2. Welche der folgenden Methoden kann zum Erstellen einer ausführbaren Klasse () verwendet werden?A implementiert Runnable{public void run() {……} }
B public class >D. Ausführbare Schnittstelle der öffentlichen Klasse
3. Verwenden Sie beim Java-Multithreading bitte eine der folgenden Methoden, damit der Thread nicht in den Blockierungszustand wechselt ()A. schlafen()
B. Suspend()D. yield()
Antworten :DAnalyse: yield führt dazu, dass der Thread in den Bereitschaftszustand wechselt
4 In Bezug auf Sleep() und Wait() lautet die folgende falsche Beschreibung ()A. Sleep ist eine Methode der Thread-Klasse (Thread), Wait ist eine Methode der Object-Klasse.
B. Sleep gibt die Objektsperre nicht auf Die Objektsperre
C. Sleep hält den Thread an, überwacht aber den Status. Wenn er aufrechterhalten wird, wird er nach dem Ende automatisch wiederhergestellt D Erst nach Ausgabe der Benachrichtigungsmethode für dieses Objekt erhält es die Objektsperre und wechselt in den Ausführungsstatus.
Antwort: DAnalyse: Nach der Benachrichtigungsmethode für dieses Objekt erhält es die Objektsperre und wechselt in den Bereitschaftszustand statt in den Ausführungszustand. Darüber hinaus kann die notifyAll-Methode für dieses Objekt auch die Objektsperre erwerben und in den Bereitschaftszustand statt in den Ausführungszustand wechseln
5. Unter den folgenden Sperrmechanismen kann die Thread-Sicherheit nicht garantiert werden ()
A. Lock
C. Volatile
Antwort: C
6. Zu den unten beschriebenen Schritten gehören die notwendigen Schritte zum Erstellen eines Prozesses ()
Der Scheduler weist dem Prozess CPU zu.
B Steuerblock
C. Dem Prozess Speicher zuweisen
D
7. Was sind die gängigen Methoden der sperrenfreien Programmierung? ()A. Für den Zähler können Sie die atomare Addition verwenden
B Mit nur einem Produzenten und einem Verbraucher können Sie einen sperrenfreien Zugriff auf den Ringpuffer erreichen ( Ring-Puffer) C. Swap), z. B. kein Sperrstapel, wartende sperrenfreie Warteschlange
Antwort: DAnalyse: A Obwohl diese Methode nicht sehr gut ist, ist sie üblich
B ProducerConsumerQueue Das ist es,
C wird häufig im Linux-Kernel verwendet D ist im Wesentlichen eine optimistische Sperre, die sehr schwierig zu bedienen ist. Es kommt häufiger vor, dass es einen einzelnen Produzenten und mehrere Konsumenten oder mehrere Produzenten und einen einzelnen Konsumenten gibt, und es ist nicht einfach, auf ABA-Probleme zu stoßen.
B ProducerConsumerQueue ist das, es ist überall C wird im Linux-Kernel häufig verwendet
D ist im Wesentlichen eine optimistische Sperre, die sehr schwierig zu bedienen ist. . Es kommt häufiger vor, wenn ein einzelner Produzent und mehrere Verbraucher oder mehrere Produzent und ein einzelner Verbraucher vorhanden sind, und es ist nicht einfach, auf das ABC-Problem zu stoßen
Das obige ist der detaillierte Inhalt vonJava-Multithreading-Interviewfragen, Multiple-Choice-Fragen einschließlich Antworten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!