1. 程式人生 > >java中Thread類run()方法和start()方法的區別

java中Thread類run()方法和start()方法的區別

run方法:不啟動新執行緒

public void run() {
    if (target != null) {
        target.run();
    }
}

start()方法:啟動一個執行緒

public synchronized void start() {
        /**
         * This method is not invoked for the main method thread or "system"
         * group threads created/set up by the VM. Any new functionality added
         * to
this method in the future may have to also be added to the VM. * * A zero status value corresponds to state "NEW". */ if (threadStatus != 0) throw new IllegalThreadStateException(); /* Notify the group that this thread is about to be started * so that
it can be added to the group's list of threads * and the group's unstarted count can be decremented. */ group.add(this); boolean started = false; try { start0(); started = true; } finally { try { if (!started) { group.threadStartFailed(this); } } catch (Throwable ignore) { /* do nothing. If start0 threw a Throwable then
it will be passed up the call stack */ } } } private native void start0();