C&C++程式設計實務實戰班(基礎+進階)課程內容請參考:http://edu.tcfst.org.tw/query_coursedetail.asp?courseidori=98C088
本文開始:要在 Dev-C++ 上寫POSIX規範的 Thread多執行緒的程式,原始的Dev-C++並不支援,但可以自 http://sourceware.org/pthreads-win32/ 下載相關 pThread for Window 版本,再將其加入 Dev-C++,這樣你的 Dev-C++ 就可以寫 POSIX規範的 Thread多執行緒的程式了。我這裡用的 Bloodshed Dev-C++版本是 Version 4( 不是 Dev-C++ 5 (currently beta) 喔 ),其相關步驟如下:
Step1: 下載 pThread for Window 版本,我下載了 pthreads-w 32-2-8 -0-release.exe。
Step2: 執行 pthreads-w 32-2-8 -0-release.exe,這是一個自解壓縮執行檔,出現如下之畫面:(ps:我是在D:\Dev-C++目錄下解壓此檔)
按下【Extract】解壓縮。待出現如下畫面:
按下【確定】。 再按下 【Done】。
Step3: 執行 Dev-C++,選【Options】選項的【Compiler options】,如下圖:
,出現 [Compiler options] 畫面,如下圖:
Step4: 在[Compiler options] 中的 [C include files] 欄位內容,增加 D:\Dev-C++\Pre-built.2\include\;在[Compiler options] 中的 [Libraries directory] 欄位內容,增加 D:\Dev-C++\Pre-built.2\lib\。
Step5: 最後在您的程式碼就可以使用 Thread 函數,如pthread_create等。同時你還需將 Thread lib庫加入此Project,方法如下: 點選【Project】【Project options】,如下圖所示:
,將會出現如下之[Project options]畫面:
,接著請按下[Load object files],在D:\Dev-C++\Pre-built.2\lib\ 目錄下(如下之畫面),
選擇 libpthreadGC2.a。如下之畫面:
選擇 libpthreadGC2.a,回到原畫面按下[OK]鈕即可。
接著依照C/C++程式規範,寫一Thread 程式,我這裡貼上在課堂中撰寫的CODE,再來就是編譯及執行囉,執行畫面如下所示:
執行結果,你會看到每隔一秒同時出現 [Th1 main ],同時連續出現 20次。
上課時撰寫的程式碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void * ThFun1(void *arg)
{ int x;
printf( "%s\r\n", (char*)arg );
for( x=1; x<=20;x++)
{
printf( "TH1 " );
_sleep( 1000 );
}
}
int main(int argc, char *argv[])
{ int x;
pthread_t th1;
printf( "Hello CYH\r\n" );
pthread_create( &th1,NULL,ThFun1, (void *)"HiTCFST");
// create a new thread for ThFun1 -> main + ThFun1
for( x=1; x<=20;x++)
{
printf( "main " );
_sleep( 1000 );
}
system("PAUSE");
return 0;
}
沒有留言:
張貼留言