pthreads-win32:Windows下使用pthread成爲可能

1 下載庫

建議大家下載:ftp://sources.redhat.com/pub/pthreads-win32/pthreads-w32-2-7-0-release.exe這個自解壓文件,壓縮包裏的pthreads.2目錄是源碼,Pre-built.2目錄是編譯所需的頭文件和庫文件。

 

2 vc的設置

添加執行庫、目錄、庫文件的路徑;

 

3 測試

編寫程序,添加項目中庫文件,編譯運行即可。

//main.cpp
#include <stdio.h>
#include 
<pthread.h>
#include 
<assert.h>

void* Function_t(void* Param)
{
    printf(
"我是線程! ");
    pthread_t myid 
= pthread_self();
    printf(
"線程ID=%d ", myid);
    
return NULL;
}


int main()
{
    pthread_t pid;
    pthread_attr_t attr;
    pthread_attr_init(
&attr);
    pthread_attr_setscope(
&attr, PTHREAD_SCOPE_PROCESS);
    pthread_attr_setdetachstate(
&attr, PTHREAD_CREATE_DETACHED);
    pthread_create(
&pid, &attr, Function_t, NULL);
    printf(
"======================================== ");
    getchar();
    pthread_attr_destroy(
&attr);
    
return 1;
}


2:在VC下使用POSIX標準的線程

POSIX下的很多東西我都很喜歡,其中就包括pthread。不過跟使用socket面臨同樣的問題,在Linux下調試程序並沒有VC下方便。所以,希望在VC下可以pthread寫東西,調試沒有問題的話可以在各個平臺下使用。

在網上找了一些資料,發現VC下使用pthread也是異常簡單啊,呵呵,記錄下來,備用~~~

有一個叫做POSIX Threads for Win32的項目,專門爲win32開發了一個pthread的lib,利用它,可以很方便的在win32下實現pthread的應用。我這裏使用到的是2.7.0版本的POSIX Threads for Win32,下載地址:ftp://sources.redhat.com/pub/pthreads-win32/pthreads-w32-2-7-0-release.exe

將下載到的exe解壓之後,會得到三個目錄:


其中,Pre-built.2中是已經編譯好的lib以及dll,同時包含了一些必要的頭文件。將其中的include文件夾和lib文件夾copy到VC的安裝目錄下,例如,我的是VC6.0的環境,默認安裝,則,需要copy到:C:\Program Files\Microsoft Visual Studio\VC98

接着,在編程的時候,引入pthreadVC2.lib即可:

   1: #pragma comment(lib, "pthreadVC2.lib")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章