package Thread.Method;
public class Stop {
public static void main(String[] args) {
DogRunable dogRunable=new DogRunable();
dogRunable.setName("小狗线程");
dogRunable.start();
for (int i = 0; i <30 ; i++) {
System.out.println("主线程跑");
}
}
}
class DogRunable extends Thread{
@Override
public void run() {
for (int i = 0; i <20 ; i++) {
if (i==15){
this.stop();
}
System.out.println(this.getName()+"吃......."+i);
}
}
}
这段代码为什么实现不了多线程 而是主线程跑完再执行的小狗吃线程?
是这么加的吗?
package Thread.Method;
public class Stop {
public static void main(String[] args) {
DogRunable dogRunable=new DogRunable();
dogRunable.setName("小狗线程");
dogRunable.start();
for (int i = 0; i <30 ; i++) {
System.out.println("主线程跑");
try {
Thread.sleep(1000);
}catch (Exception e){
throw new RuntimeException(e);
}
}
}
}
class DogRunable extends Thread{
@Override
public void run() {
for (int i = 0; i <20 ; i++) {
if (i==15){
this.stop();
}
System.out.println(this.getName()+"吃......."+i);
try {
Thread.sleep(1000);
}catch (Exception e){
throw new RuntimeException(e);
}
}
}
}
你把多线程想象成什么了,你这才循环30次,就几纳秒就执行完了,线程还没起来呢
你在循环里加个sleep(1000)再试试
楼主更新一下代码格式,用 markdown
让代码睡一会