1 下載庫(kù)

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

 

2 vc的設(shè)置

添加執(zhí)行庫(kù)、目錄、庫(kù)文件的路徑;

 

3 測(cè)試

編寫(xiě)程序,添加項(xiàng)目中庫(kù)文件,編譯運(yùn)行即可。

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

void* Function_t(void* Param)
{
    printf(
"我是線(xiàn)程! ");
    pthread_t myid 
= pthread_self();
    printf(
"線(xiàn)程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標(biāo)準(zhǔn)的線(xiàn)程

POSIX下的很多東西我都很喜歡,其中就包括pthread。不過(guò)跟使用socket面臨同樣的問(wèn)題,在Linux下調(diào)試程序并沒(méi)有VC下方便。所以,希望在VC下可以pthread寫(xiě)東西,調(diào)試沒(méi)有問(wèn)題的話(huà)可以在各個(gè)平臺(tái)下使用。

在網(wǎng)上找了一些資料,發(fā)現(xiàn)VC下使用pthread也是異常簡(jiǎn)單啊,呵呵,記錄下來(lái),備用~~~

有一個(gè)叫做POSIX Threads for Win32的項(xiàng)目,專(zhuān)門(mén)為win32開(kāi)發(fā)了一個(gè)pthread的lib,利用它,可以很方便的在win32下實(shí)現(xiàn)pthread的應(yīng)用。我這里使用到的是2.7.0版本的POSIX Threads for Win32,下載地址:ftp://sources.redhat.com/pub/pthreads-win32/pthreads-w32-2-7-0-release.exe

將下載到的exe解壓之后,會(huì)得到三個(gè)目錄:


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

接著,在編程的時(shí)候,引入pthreadVC2.lib即可:

   1: #pragma comment(lib, "pthreadVC2.lib")

 

剩下的步驟,就和Linux下一樣了,盡情享用吧^_^