java求助
package cn.liu.thirteen;
/**
* 终止线程
* 1、线程正常执行完毕
* 2、外部干涉-->加入标志
* 不要使用stop/destroy,不安全
*/
public class TerminateThread implements Runnable{
private boolean flag=true;
private String name;
public TerminateThread(String name) {
this.name=name;
}
public void terminateThread() {
this.flag=false;
}
@Override
public void run() {
int i=0;
while(flag) {
System.out.println(name+"-->"+i++);
}
}
public static void main(String[] args) {
TerminateThread tt=new TerminateThread("por");
new Thread(tt).start();
for(int i=0;i<99;i++) {
if(i==88) {
tt.terminateThread();
System.out.println("end");
}
// System.out.println("s"+i); //不加这一句结果只显示end,不知道为啥
}
}
}
有个疑问:// System.out.println("s"+i);
不加这一句结果只显示end,难道是i++的计算速度贼快吗,以至于线程都没来的及开始就结束了吗?