Den Effekt erkennen:
Der krachende Thread Man: (Einzelphread)
Wenn der Haupt -Thread eine Anfrage zur Aktualisierung des Bildes verarbeitet, kann er andere Anforderungen nicht akzeptieren und so in einen blockierenden toten Schleifenzustand fallen.
Bilder zeichnen
Import Java.awt.Graphics; Import Java.awt.image; Import Java.awt.toolkit; import Javax.swing.jpanel; öffentliche Klasse Cartonperson erweitert JPanel -Implements Runnable {Image IMG [] = New Image [6]; int Index = 0; public cartonperson (int intbar (int Geschwindigkeit) {this.speed = speed; img [0] = Toolkit.getDefaulttoolkit (). getImage ("1.png"); img [1] = Toolkit. "3.png"); img [3] = Toolkit.getDefaulttoolkit (). GetImage ("4.png"); img [4] = Toolkit.getDefaulttoolkit (). GetImage ("5.png"); img [5] = Toolkit run () {while (true) {try {repaint (); thread.sleep (100);} catch (interruptedException e) {e.printstacktrace ();}}}@oversidepublic void PaintComponent (Graphics g) {// todo auto-generated method method stubsuper.paint (g); 0, getWidth (), Getheight (), this); // system.out.println (index); if (index == 5) {index = 0;} else {index ++;}}}}Layout mit einem Thread-Form
Import Java.awt.event.ActionEvent; Import Java.awt.event.ActionListener; Import Javax.swing.jbutton; Import Javax.swing.jframe; Jbutton ("Wait"); 500; 160; 360, 80, 30); Bresume. stubif(e.getSource()==bstart){p1.run();}else if(e.getSource()==bpause){}else if(e.getSource()==bresume){}}} public static void main(String[] args){new SingleThreadCarton();}}Auslaufergebnisse:
Nachdem Sie auf die Schaltfläche "Start" geklickt haben, stürzt das Programm ab.
Multi-Thread-Form-Layout
import Java.awt.event.ActionEvent; Import Java.awt.event.ActionListener; Import Javax.swing.jbutton; Import Javax.swing.jframe; Jbutton ("Wait"); 500; 160; 360, 80, 30); Bresume. 30); Bresume.AddactionListener (260, 360, 80, 30); Bresume.AddactionListener (260, 360, 80, 30); Bresume.addactionListener (260, 360, 80, 30); Bresume.AddactionListener (260, 360, 30, 80, 30, 30); 30); Bresume.addactionListener (260, 360, 80, 30); Bresume.addactionListener (260, 360, ButtonClick implementiert ActionListener {@Overridepublic void actionPersformed (actionEvent e) {// Todo Auto-Generated-Methode stubif (e.getSource () == Bstart) {// p1.run (); t1.start ();} else if (e.getSource () == BPAUSE) {T1.Suspend ();} else if (e.getSource () == bresume) {t1.resume ()}}}}} uar (] {] {] {] {] {] {] {}}} uid (staINGSUM) {] {] {] {] {] {] {}}} static static static static static static (staINGESUME) {] {] {] {] {] {]}}}} uid [] {] {] {] {}}} static static static static static (staats) oder Multithreadcarton ();}}Auslaufergebnis: Wie in der oberen Abbildung gezeigt.
Das obige ist die Beschreibung des Beispiels des Thread -Helden, der diesmal in Java in Java laufen kann. Vielen Dank für Ihre Unterstützung für Wulin.com.
Dieser Artikel ist reproduziert unter: https://www.idaobin.com/archives/841.html