start和run方法区别,详细说明下
时间: 2024-05-30 19:12:45 浏览: 13
start方法和run方法都是Java中的线程方法,但是它们的作用有所区别。
start方法是用于启动一个新的线程,当调用start方法时,JVM会在新的线程中执行run方法中的代码,如果直接调用run方法,则不会启动一个新的线程,而是当前线程执行run方法中的代码。
需要注意的是,一个线程一旦启动,就不能再次启动,即无法再次调用start方法。如果尝试调用start方法会抛出IllegalThreadStateException异常。
总的来说,使用start方法去启动一个新的线程是推荐的方式,而直接调用run方法则不会启动一个新的线程,因此没有并发执行的效果。
相关问题
java run()start()
您好!对于您的问题,我理解您想知道在Java中如何使用`run()`和`start()`方法。
在Java中,每个线程都有一个`run()`方法,它包含线程的实际逻辑。当您调用`run()`方法时,它会在当前线程中执行,并且没有新的线程被创建。
另一方面,`start()`方法用于启动一个新的线程,并在新的线程中执行`run()`方法。当您调用`start()`方法时,Java虚拟机(JVM)会为该线程分配资源,并在适当的时候调用`run()`方法。
下面是一个简单的示例来说明`run()`和`start()`方法的使用:
```java
public class MyThread extends Thread {
public void run() {
System.out.println("线程正在执行");
}
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.run(); // 在当前线程中执行run()方法
MyThread anotherThread = new MyThread();
anotherThread.start(); // 创建新线程并执行run()方法
}
}
```
在上面的示例中,`MyThread`类继承自`Thread`类,并重写了`run()`方法。在`main()`方法中,我们创建了一个`MyThread`对象`thread`,并直接调用了`run()`方法,这将在当前线程中执行。
然后,我们创建了另一个`MyThread`对象`anotherThread`,并调用了`start()`方法。这将在新的线程中执行`run()`方法。
请注意,直接调用`run()`方法不会创建新的线程,而只是在当前线程中执行。如果您希望实现并发执行,需要使用`start()`方法来启动新的线程。
希望这能解答您的问题!如果还有其他问题,请随时提问。
threa.java 里面的方法说明
thread.java 是一个 Java 编程语言中的类文件,它包含了一些用于线程操作的方法。
1. start() 方法:用于启动一个新的线程,在该线程上调用 run() 方法。在调用 start() 方法之后,线程会进入就绪状态,等待 CPU 调度执行。
2. run() 方法:是线程的入口点,其定义了线程需要执行的任务内容。当 start() 方法被调用后,run() 方法会被执行。
3. sleep() 方法:用于暂停当前线程的执行,让其他线程有机会去执行。可以通过指定时间来控制睡眠的时长,时间单位为毫秒。在睡眠结束后,线程会重新进入可运行状态。
4. yield() 方法:让当前线程让出 CPU 执行时间,以便其他线程有机会执行。调用 yield() 方法后,当前线程会进入就绪状态,等待 CPU 调度执行。
5. join() 方法:用于等待一个线程执行完毕。如果在一个线程中调用了其他线程的 join() 方法,该线程会被阻塞,直到被调用 join() 方法的线程执行完毕。
6. interrupt() 方法:用于中断线程的执行。当一个线程在等待状态时,调用该方法会抛出 InterruptedException 异常,从而使线程提前结束。
7. isAlive() 方法:用于判断线程是否还存活。如果一个线程仍在运行,返回 true;否则返回 false。
总之,thread.java 中的方法提供了一些对线程的操作和控制,可以实现多线程的并发执行和协调的功能。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)