這裡面主要介紹了建立新執行緒的幾個方法,不討論實現執行緒有多少種的方法
public
class
testrunnableinte***ce
implements
runnable
public
static
void
main
(string[
] args)
}
實現 runnable介面後,需要重寫它的 run()方法,並在runnable方法中實現自己的操作,具體實現什麼,看自己的需求。後面我們需要建立乙個執行緒,把我們實現runnable介面的類給傳入進去,然後呼叫 start()方法,方可執行
public
class
testthreadextends
extends
thread
public
static
void
main
(string[
] args)
}
繼承 thread方法後,跟上面的一樣,需要重寫 run(),並實現自己想要執行的操作。後面我們則不需要建立乙個新的執行緒類來輔助建立執行緒執行了,只要使用繼承 thread的這個類,直接呼叫 start()方法,就可以使用了
public
class
anonymitythread})
; thread.
start()
;}}
上面的匿名實現的方法,是不是看著挺容易實現的,而且還不用新建立乙個類,是不是意味著好呢?其實這樣不太易於重複使用同乙個功能,如果你需要再使用,那麼就得重新寫同樣的**,需要使用的次數多,也就冗餘的**量會很多
其它能建立新執行緒的類,就不多贅述了,有 callable建立新執行緒,有執行緒池建立新執行緒,具體方法很多
回到前面的**,既然有幾種簡單實現執行緒的方法,那麼實現 runnable介面和繼承 thread類,哪個更好?
我見到過的有以下幾點:
建立新執行緒
在進行多執行緒程式設計的時候,我們經常用到afxbeginthread函式來啟動一條執行緒 該函式使用起來非常的簡單方便,其定義如下 cwinthread afxbeginthread afx threadproc pfnthreadproc,執行緒函式位址 lpvoid pparam,執行緒引數 ...
多執行緒 建立新執行緒
執行緒是 的執行序列或者執行路徑。執行緒與程序的概念有一些類似,它類似於乙個輕量級的程序 乙個作業系統可以執行多個程序,乙個程序內可以執行多個執行緒。每個應用程式至少執行在乙個執行緒上。當只有乙個執行緒時,稱作單執行緒應用程式,該執行緒由系統自動建立。下面看乙個簡單單執行緒例子 如上圖,本短程式從入...
執行緒中建立新執行緒,退出機制
執行緒中建立新執行緒,退出機制 程式 include include include include pthread t son t 0 void cleanup void 這一句是找出本程序的所有執行緒.printf clean n void son cleanup void void test ...