Python 官方文档:入门教程 => 点击学习
目录1、直接调用线程的run()方法2、调用线程的start()方法3、总结1、直接调用线程的run()方法 public class TestStart { publi
public class TestStart {
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(){
@Override
public void run() {
System.out.println("Thread t1 is working..."+System.currentTimeMillis());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
t1.run();
Thread.sleep(2000);
System.out.println("Thread Main is doing other thing..."+System.currentTimeMillis());
}
}
可以看到主线程在t1.run()
运行之后再过三秒才继续运行,也就是说,直接在主方法中调用线程的run()
方法,并不会开启一个线程去执行run()
方法体内的内容,而是同步执行。
public class TestStart {
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(){
@Override
public void run() {
System.out.println("Thread t1 is working..."+System.currentTimeMillis());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
t1.start();
Thread.sleep(2000);
System.out.println("Thread Main is doing other thing..."+System.currentTimeMillis());
}
}
startVSrun1.JPG
可以看到在,在执行完t1.start()
这一行之后,主线程立马继续往下执行,休眠2s后输出内容。 也就是说,t1线程和主线程是异步执行的,主线程在线程t1的start()
方法执行完成后继续执行后面的内容,无需等待run()方法体的内容执行完成。
start()
方法,直接调用run()
方法并不会创建线程,而是同步执行run()
方法中的内容。Runnable
对象创建线程,线程会执行Runnable
对象的run()
方法;否则执行自己本身的run()方法。Runnable
接口还是继承Thread对象,都可以重写run()方法,达到执行设定的任务的效果。到此这篇关于线程启动为什么要用start()而不是run()?的文章就介绍到这了,更多相关start()与run()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Java线程启动为什么要用start()而不是run()?
本文链接: https://www.lsjlt.com/news/159695.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0