Windows的C++没有pthread_t类型,linux中有个
pthread.h,很多站的VC代码,都不知道从哪包含来的,shit
网上看到有一个叫 
POSIX Threads for Win32 的开源项目给出了一个功能比较完善的Windows下pthreads API的实现。
我用的2.7.0版的链接:
ftp://sources.redhat.com/pub/pthreads-win32/pthreads-w32-2-7-0-release.exe。
       关于该开源项目的详细介绍见:http://sources.redhat.com/pthreads-win32/。
 简单使用
       上面的exe文件是一个自解压文件,解压后,Pre-built.2目录中有编译所需要的头文件(include子目录)和库文件(lib子目录)。
       一个简单的测试程序(main.cpp):
 #include <stdio.h>
#include <stdio.h>
 #include <pthread.h>
#include <pthread.h>
 #include <assert.h>
#include <assert.h>

 void* Function_t(void* Param)
void* Function_t(void* Param)

 ...{
...{
 printf("I am a thread!  ");
    printf("I am a thread!  ");
 pthread_t myid = pthread_self();
    pthread_t myid = pthread_self();
 printf("thread ID=%d ", myid);
    printf("thread ID=%d ", myid);
 return NULL;
    return NULL;
 }
}

 int main()
int main()

 ...{
...{
 pthread_t pid;
    pthread_t pid;
 pthread_attr_t attr;
    pthread_attr_t attr;
 pthread_attr_init(&attr);
    pthread_attr_init(&attr);
 pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS);
    pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS);
 pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
 pthread_create(&pid, &attr, Function_t, NULL);
    pthread_create(&pid, &attr, Function_t, NULL);
 printf("======================================== ");
    printf("======================================== ");
 getchar();
    getchar();
 pthread_attr_destroy(&attr);
    pthread_attr_destroy(&attr);
 return 1;
    return 1;
 }
}  
使用 cl.exe 编译(不熟悉 cl.exe 的请参考:http://blog.csdn.net/liuyongjin1984/archive/2008/01/07/2029405.aspx 或者参见下面3.2部分):
 使用VC++ 6.0或Visual Studio 2005来运行上面的程序
关键有两点:
1. 是将头文件(include子目录)和库文件(lib子目录)中的内容添加到VC++ 6.0或Visual Studio 2005开发环境对应的include和lib目录下。
具体来说(以添加include目录为例,添加lib目录类似):
图1:VC++ 6.0(添加include目录:工具--》选项--》目录)
 
 
 
图2:Visual Studio 2005(添加include目录:tools--》options)
 
 
 
2. 指定link时要连接的库的名称(pthreadVC2.lib)
图3:VC++ 6.0(工程--》设置--》连接)

图4:Visual Studio 2005(project-->* property pages)
 
 
不过最终还是带一个
pthreadVC2.dll真恶心,搞半天还不如用cygwin