1. Die Thread -Steuerung ist sehr häufig.
2. Threads haben fünf Zustände: Erstellung, Betrieb, Betrieb, Blockierung und Tod.
Erstellen: Erstellen Sie einen Thread mit dem neuen Bediener
Laufbar: Nach dem Start eines Threads mithilfe der Startmethode weist das System Ressourcen zu
Auslaufstatus: Führen Sie die Methode zur Ausführung von Thread aus
Blockierung: Der laufende Thread wird aus irgendeinem Grund aufhören, aus irgendeinem Grund zu laufen
Todeszustand: Faden endet
3. Sicherheitsprobleme traditioneller Methoden
Thread's Stop (), Suspend (), Resume (), Destroy () und Destroy () werden nicht mehr angewendet, da sie unsicher sind und Deadlocks verursachen können.
4. Wie man den Betrieb von Threads steuert
Wenn beispielsweise die Übertragung einer Datei 10 Sekunden dauert, lassen Sie sie in einen bestimmten Moment übertragen und fahren Sie dann fort, bis die Übertragung abgeschlossen ist. Verwenden Sie die Methode, um Runnable zu implementieren, zunächst die Runnable -Klasse für die Dateiübertragung
Der Code ist wie folgt:
Die Codekopie lautet wie folgt:
öffentliche Klasse ThreadControltest1 implementiert Runnable
{
Privat int Prozent = 0;
öffentliche void run ()
{
Während (wahr)
{
System.out.println ("Übertragungsfortschritt:" + Prozent + "%");
versuchen
{
Thread.sleep (1000);
}
fangen (Ausnahme ex)
{}
Prozent += 10;
if (Prozent == 100)
{
System.out.println ("Übertragung abgeschlossen");
brechen;
}
}
}
öffentliche statische Leere Main (String [] Args)
{
ThreadControltest1 ft = neuer ThreadControltest1 ();
Thread th = neuer Thread (ft);
th.start ();
}
}
5. Führen Sie den Simulationsprozess der Druckdateiübertragung auf der Konsole aus. Es ist ersichtlich, dass, wenn das Objekt dieser Klasse als Thread ausgeführt wird, die WHOR -Schleife zehnmal ausgeführt wird und dann beendet wird.
Sie müssen jedoch den Thread (z. B. 1 Minute) in einem bestimmten Zeitpunkt (z.
Um dieses Problem zu lösen, sind die gemeinsamen Methoden wie folgt:
1. Wenn die Pause erforderlich ist, lassen Sie einfach die Ausführung der Thread -Methode mit freien Ressourcen beenden (tatsächlich lassen Sie den Thread dauerhaft enden).
2. Wenn der Thread fortgesetzt werden muss, wird ein neuer Thread geöffnet, um weiter zu arbeiten.
Wie enden Sie die Run -Methode?
6. Der obige Code kann in Folgendes geändert werden:
Die Codekopie lautet wie folgt:
öffentliche Klasse ThreadControltest1 implementiert Runnable
{
Privat int Prozent = 0;
privat boolean isrun = true;
öffentliche void run ()
{
während (isrun)
{
System.out.println ("Übertragungsfortschritt:" + Prozent + "%");
versuchen
{
Thread.sleep (1000);
}
fangen (Ausnahme ex)
{}
Prozent += 10;
if (Prozent == 100)
{
System.out.println ("Übertragung abgeschlossen");
brechen;
}
}
}
öffentliche statische Leere Main (String [] Args)
{
ThreadControltest1 ft = neuer ThreadControltest1 ();
Thread th = neuer Thread (ft);
th.start ();
versuchen
{
Thread.sleep (5000);
} catch (Ausnahme ex)
{}
ft.isrun = false;
System.out.println ("Pause für eine Minute");
versuchen
{
Thread.sleep (1000*60);
} catch (Ausnahme ex)
{}
ft.isrun = true;
th = neuer Thread (ft);
th.start ();
}
}