java中thread的start()和run()有何区别?

来源:百度知道 编辑:UC知道 时间:2024/05/10 12:08:05
要是用start()的话,不是也要再调用thread的run()方法么?
那如果写一个
class secThread extends Thread
{
void run()
{
//......
}
}

public class exThread
{
public static void main(String args[])
{
secThread st= new secThread();
st.start();
}
}
这里用st.start()和st.run()有什么区别么?
运行效率?接续结构化?逻辑性?或者别的什么?
小弟新手,诚心求解,先拜谢了

1、运行的方式不同:

(1)start()方法来启动线程,真正实现了多线程运行,这时无需等待;

(2)run()方法当作普通方法的方式调用,程序还是要顺序执行。

2、run方法的实现不同:

(1)start()的run方法体代码执行完毕而直接继续执行下面的代码;

(2)run()的要等待run方法体执行完毕后才可继续执行下面的代码。

3、线程的不同:

(1)start()通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行;

(2)run方法只是thread的一个普通方法调用,还是在主线程里执行。

扩展资料

1、run方法:不启动新线程

public void run() {    if (target != null) {

target.run();
}}