Java 中Thread 和 Runnable都可以作為多線程的程序中使用,兩者中不同是
Thread 是一個Class
Runnable 是一個Interface
通過extends Thread,可獲得start(), sleep(), 並覆蓋run(), 使用時直接用start(),但有時不太方便通過繼承(extends)而進行多線程,例如已繼承了其它Class(Java 不允許多重繼承)時,就應該實現(implements) Runnable寫多線程程序。
注意,implements Runnable創建的只有run()方法而没有start(),因此要利用其它機制來啟動。這要創建兩個instances,第一個是Runnable的,第二個是Thread的,然後把第一個當成參數傳給第二個
例子:
private class RunnableThread implements Runnable {
public void run(){ // Runnable's run method
//do something while run
try {
//Static Method from Thread class, coz Runnable no such method.
Thread.sleep(100);
}catch (InterruptedException e)
{ }
}
}
Thread aRunnThread = new Thread(new RunnableThread());
aRunnThread.start(); //其中start()會調用runnable中的run()
==============
一般Thread寫法
private class GenThread extends Thread{
public void run() {
//do thread job
...
try{
sleep(300); //release cpu to do other job
}catch(InterruptedException e)
{.....}
}
}
//on other class to call it
Thread theGenThread = new GenThread();
theGenThread.start();
Thursday, June 23, 2011
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment