Ich versuche, ein Thread-Tutorial zu implementieren, und das ist die Klasse, in der ich Thread-Klasse erweitert habe.Warum läuft mein Thread weiter?
package training;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Threadtutorial extends Thread{
Date now;
Locale place;
//int i;
public void run(){
int i=0;
while(i<1){
now = new Date();
place = new Locale("en");
//timeFormatter t = new timeFormatter();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
DateFormat d ;
DateFormat d2;
d=DateFormat.getDateInstance(DateFormat.SHORT, place);
d2=DateFormat.getTimeInstance(DateFormat.DEFAULT, place);
//String d2=d.format(now);
String ass=sdf.format(now);
String bas=d.format(now);
String css=d2.format(now);
//String bss=sdf.format(ass);
System.out.println("start");
//System.out.println(ass);
System.out.println(bas);
System.out.println(css);
i--;
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
}
und unten ist meine Klasse, die den Faden führt.
package training;
public class Threadexecutor {
public static void main(String[] args) {
// TODO Auto-generated method stub
Threadtutorial t= new Threadtutorial();
//for(int i=0;i<4;i++){
t.start();
Threadtutorial t2= new Threadtutorial();
t2.start();
//}
}
}
Jetzt, warum mein Thread läuft, warum kann ich Stop-Methode nicht verwenden?
Sie haben 'while (i <1)' und 'i -'. Wenn also "i" bei 0 beginnt und eins davon subtrahiert, wird jede Iteration fortgesetzt, bis sie unterläuft. – quackenator
Also ist es eine unendliche While-Schleife. Haben Sie versucht, interrupt() von einem anderen Thread aufzurufen? Das wird "it. –
Ich würde es nicht unendlich nennen. Sobald" i "um -2^31 dekrementiert ist, sollte es zu (2^31) -1 unterschreiten. Dies wäre größer als' 1' und beendet die Schleife Sie müssen nur auf mehr als 2 Milliarden Iterationen dieser Schleife warten – quackenator