Java 为什么我的线程一直在运行?
我试图实现一个线程教程,这是我扩展线程类的类Java 为什么我的线程一直在运行?,java,multithreading,Java,Multithreading,我试图实现一个线程教程,这是我扩展线程类的类 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;
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();
}
}}
}
成套培训;
导入java.text.DateFormat;
导入java.text.simpleDataFormat;
导入java.util.Date;
导入java.util.Locale;
公共类Threadtutorial扩展了线程{
日期现在;
地点;
//int i;
公开募捐{
int i=0;
while(i因为你只是在递减变量i。它总是小于1。这样你就有了一个无限循环。你有了while(iSo,它是一个无限的while循环。你试过从另一个线程调用interrupt()吗?那会中断“它。我不会说它是无限的。一旦I
递减超过-2^31,它就应该下溢到(2^31)-1.这将大于1
并终止循环。你只需要等待超过20亿次循环的迭代来解决你问题的第二部分,任何人都不应该使用它。哦,上帝,我相信这一定是史上最愚蠢的问题了
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();
//}
}
}
while(i<1)
i--;