Java 我先调用start,然后调用run,但输出就像运行两个不同的线程
我先呼叫Java 我先调用start,然后调用run,但输出就像运行两个不同的线程,java,multithreading,Java,Multithreading,我先呼叫start,然后再呼叫run。当我先运行run()然后运行start()时,run将被视为一个方法并完全运行,然后调用start,但这样我的输出是: 0线程-1 0线程-0 1线程-1 1线程-0 2Thread-0 2读-1 3线程-1 3线程-0 4线程-1 4Thread-0 为什么,一旦运行被调用,它不完全运行吗 public class basic extends Thread { public void run (){ for(int i = 0; i <
start
,然后再呼叫run
。当我先运行run()
然后运行start()
时,run
将被视为一个方法并完全运行,然后调用start
,但这样我的输出是:
0线程-10线程-0
1线程-1
1线程-0
2Thread-0
2读-1
3线程-1
3线程-0
4线程-1
4Thread-0 为什么,一旦运行被调用,它不完全运行吗
public class basic extends Thread {
public void run (){
for(int i = 0; i < 5; i++) {
try {
Thread.sleep(100);
System.out.println(i+ this.getName());
} catch (InterruptedException e) {
System.out.println(e);
}
}
}
public static void main(String[] args) {
basic x= new basic();
basic y=new basic();
x.start();
y.run();
}
}
公共类基本扩展线程{
公开作废运行(){
对于(int i=0;i<5;i++){
试一试{
睡眠(100);
System.out.println(i+this.getName());
}捕捉(中断异常e){
系统输出打印ln(e);
}
}
}
公共静态void main(字符串[]args){
basic x=新的basic();
基本y=新的基本();
x、 start();
y、 run();
}
}
线程。start()是启动线程的正确方法
x.start();
y.start();
将启动2个新线程
x.run();
y.run();
将只在实际主线程下的线程内执行代码。
这是一个常见的错误
嗯,我不喜欢执行两个不同的线程。这是两个不同的线程正在执行。当前线程执行run()方法,启动线程也在不同的线程中并发执行。这有什么奇怪的?我用camelCase,用小写字母表示一个单词,谢谢。我的问题有点不同。对不起。这对你有用吗?你了解跑步和开始的区别吗?如果你想看免费教程,你可以看清楚。它已经完成了,从0到4,没有?