使用CreateThread()時,兩個線程是否可以使用單個函數「ThreadProc」作爲其線程過程?兩個線程可以使用相同的線程程序嗎?
HANDLE thread1= CreateThread(NULL, //Choose default security
0, //Default stack size
(LPTHREAD_START_ROUTINE)&ThreadProc,
//Routine to execute. I want this routine to be different each time as I want each thread to perform a different functionality.
(LPVOID) &i, //Thread parameter
0, //Immediately run the thread
&dwThreadId //Thread Id
)
HANDLE thread2= CreateThread(NULL, //Choose default security
0, //Default stack size
(LPTHREAD_START_ROUTINE)&ThreadProc,
//Routine to execute. I want this routine to be different each time as I want each thread to perform a different functionality.
(LPVOID) &i, //Thread parameter
0, //Immediately run the thread
&dwThreadId //Thread Id
)
請問上面的代碼中創建兩個線程每個相同的功能(因爲線程程序兩個線程的相同。)我是不是做正確嗎?
如果可能,那麼會有任何同步問題,因爲兩個線程都使用相同的線程程序。
請幫我這個。我非常困惑,無法通過互聯網找到任何東西。
從這裏開始:http://en.wikipedia.org/wiki/Thread_(computing) – 2013-05-02 08:26:25
你的第二個線程ID將覆蓋第一個。如果你不關心線程ID,只需傳遞NULL即可。如果你在意,使用'dwThreadId1'和'dwThreadId2'(或者一個數組,當然)。 – MSalters 2013-05-02 11:07:33
+1,謝謝:) – Ayse 2013-05-02 11:20:53