Create Thread
Runable and Thread
java.lang.Runable
public interface Runnable {
public abstract void run();
}
java.lang.Thread
- Thread實做Runnable,需實做run()
- start()用start0()來啟動一個新的執行緒,執行緒會執行run()
- 傳入Runnable來建立Thread實體,run()會執行Runnable物件的run()
public class Thread implements Runnable {
...
public Thread() {
init(null, null, "Thread-" + nextThreadNum(), 0);
}
public Thread(Runnable target) {
init(null, target, "Thread-" + nextThreadNum(), 0);
}
...
public synchronized void start() {
if (threadStatus != 0)
throw new IllegalThreadStateException();
group.add(this);
boolean started = false;
try {
start0();
started = true;
} finally {
try {
if (!started) {
group.threadStartFailed(this);
}
} catch (Throwable ignore) {}
}
}
private native void start0();
@Override
public void run() {
if (target != null) {
target.run();
}
}
}
from: Java多線程系列--「基礎篇」03之 Thread中start()和run()的區別