抱歉,如果这是一个基本问题,但我一直在考虑做多个精灵循环,并且我第一次尝试在 main 中创建两个线程,两个线程都带有 while(true) 循环。我的意图:让两个线程同时循环。但是,当我运行程序时,它似乎中断了执行流程,并且第二个循环没有在新线程中执行,而只是在程序卡在线程的第一个无限 while() 循环时停止。我认为它仍然只是执行主线程,而不是启动一个新线程然后继续。
我试过两种方法:
一次使用线程:
public class Zzz {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
r1 r = new r1();
r2 a = new r2();
r.start();
a.start();
}
}
public class r1 extends Thread {
@Override
public void start() {
while(true) {
System.out.println("r1");
try {
this.sleep(100);
} catch (Exception ex) {
}
}
}
}
public class r2 extends Thread {
@Override
public void start() {
while(true) {
System.out.println("r2");
try {
this.sleep(100);
} catch (Exception ex) {
}
}
}
}
一次使用 Runnable:
public class Zzz {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
r1 r = new r1();
r2 a = new r2();
r.run();
a.run();
}
}
public class r1 implements Runnable {
@Override
public void run() {
while(true) {
System.out.println("r1");
try {
Thread.sleep(100);
} catch (Exception ex) {
}
}
}
}
public class r2 implements Runnable {
@Override
public void run() {
while(true) {
System.out.println("r2");
try {
Thread.sleep(100);
} catch (Exception ex) {
}
}
}
}
但无济于事。它总是卡在 R1 上。有什么想法吗?我已经用谷歌搜索并环顾四周,但我无法在任何地方找到它。