一直習慣用c語言的方法建立執行緒,即pthread_create和_beginthread,但總覺得這樣不夠物件導向。c++建立執行緒有兩種方法:基於物件的方法和物件導向的方法。物件導向建立執行緒相比較面向過程的優點是可以復用一些公共函式,像執行緒的開始,執行緒的結束,執行緒的暫停等等。
基於物件建立執行緒**:
class thread
;struct threaddata
void runinthread()
catch (const exception& ex)
catch (const std::exception& ex)
catch (...)}};
void* startthread(void *arg)
thread::thread(const threadfunc &func, const string & name) : m_func(func), m_name(name)
thread::thread()
thread::~thread()
void thread::start()
void thread::pthread_suspend()
void thread::suspendpthread()
}void thread::pthread_resume()
基於物件建立執行緒的方法:基於物件的執行緒建立主要使用c++的bind和function函式,相比較於物件導向的方法好處是可以避免繼承。首先建立乙個thread的類,類接受乙個仿函式,負責執行緒的實際執行,由引數列表傳入。thread類可以看到主要作用是進行執行緒的控制,裡面有像start,stop,resume等控制函式,具體的實現不同系統可能不同。在thread類內也可以再建立乙個threaddata的類,負責執行新執行緒。當要建立執行緒的時候,直接new thread(func),func是新執行緒要執行的函式,即可。
其次是物件導向的執行緒建立方法:比較簡單。建立乙個執行緒類thread,主要負責建立新執行緒,控制線程的開始結束停止等等。然後繼承thread類,重寫裡面的start函式。
C 執行緒使用
執行緒建立的關鍵是要給它指定一段執行緒要執行的 段,這段 可以是任意可以訪問到的函式,如其它類的靜態函式,自己類定義的函式.1.先生成乙個threadstart 類的例項,將要執行緒執行的 和這個物件關聯,2.再在建立執行緒時的建構函式裡,用threadstart 類的例項實現關聯,下面的示例說明建...
C 執行緒使用
1.lock鎖定 建立乙個類,程式碼如下 view code class person runcountb runcountc runcounta,runcountb,runcountc break lock o public void doworkb runcountb runcountc run...
c 中使用多執行緒
using system using system.drawing using system.collections using system.componentmodel using system.windows.forms using system.data using system.threa...