50,528
社区成员
发帖
与我相关
我的任务
分享
public class Task {
private static int flag = -1;
public static void main(String[] args) {
new Thread(new ChangeTask()).start();
while (flag == -1){}
System.out.println("debug");
}
static class ChangeTask implements Runnable {
try {
Thread.sleep(3000);
} catch (Exception e) {}
flag = 1;
}
}
/* 方法1 */
for (;flag == -1;){}
/* 方法2 */
do {
} while(flag == -1);
while (true) {
if (flag != -1) break;
}
while (flag == -1) {
System.out.println("debug");
}
static class ChangeTask implements Runnable {
public void run() {
try {
Thread.sleep(3000);
} catch (Exception e) {}
flag = 1;
}
}
另外,防止你的while(flag == -1)过多占用CPU,你可以yield一下
while (flag == -1){} 改成 while(flag == -1) {Thread.yield();}