start()
和 run()
方法是 Java 中 Thread
类中的两个重要方法,它们有着关键的区别:
start()
方法用于启动一个新线程,并让这个线程执行其对应的 run()
方法。start()
方法时,会创建一个新的线程,并在新线程的上下文中执行 run()
方法。start()
方法后,不应直接再次调用 run()
方法,否则 run()
方法会在当前线程的上下文中执行,而不会开启新线程。Thread thread = new Thread(() -> {
// 线程的执行逻辑
});
thread.start(); // 启动新线程并执行 run() 方法
2.run() 方法:
run()
方法定义了线程的执行逻辑,包含了线程具体要执行的代码。run()
方法,它会在当前线程的上下文中执行,就像调用普通的方法一样,并不会创建新线程。 Thread thread = new Thread(() -> {
// 线程的执行逻辑
});
thread.run(); // 在当前线程上执行 run() 方法,不会开启新线程
总结来说,start()
方法用于启动一个新的线程并执行线程的 run()
方法,而 run()
方法仅仅是定义了线程的执行逻辑,在调用 start()
方法后由新线程执行,直接调用 run()
方法则是在当前线程中执行,不会创建新线程。
因篇幅问题不能全部显示,请点此查看更多更全内容