准备扩展包
下载地址 链接:https://pan.baidu.com/s/1B7hKdd8DNtflgjKzbIX14Q 提取码:73m8
扩展包放入对应位置
下载的扩展包 | 对应的放入位置 |
---|---|
pthread\include | vs软件安装位置\VC\Tools\MSVC\14.32.31326\include |
pthread\lib\x64 | vs软件安装位置\VC\Tools\MSVC\14.32.31326\lib\x64 |
pthread\lib\x86 | vs软件安装位置\VC\Tools\MSVC\14.32.31326\lib\x86 |
pthread\dll\x64 | C:\Windows\System32 |
代码引入
#pragma comment(lib,"pthreadVC2.lib")
必不可少,这是告诉编译器在编译形成的.obj文件和.exe文件中加一条信息,使得链接器在链接库的时候要去找pthreadVC2.lib这个库,不要先去找别的库。(.exe文件找DLL 也是这种写法,例如 pthreadVC2.dll)
代码示例
#include <pthread.h>
#include <stdio.h>
#define NUM_THREADS 5
#pragma comment(lib,"pthreadVC2.lib") //必不可少,这是告诉编译器在编译形成的.obj文件和.exe文件中加一条信息,使得链接器在链接库的时候要去找pthreadVC2.lib这个库,不要先去找别的库。(.exe文件找DLL 也是这种写法,例如 pthreadVC2.dll)
void* PrintHello(void* threadid)
{
int tid;
tid = (int)threadid;
printf("Hello World!It's me,thread #%d!\n", tid);
pthread_exit(NULL);
return threadid;
}
int main(int argc, char* argv[])
{
pthread_t threads[NUM_THREADS];
int rc, t;
for (t = 0; t < NUM_THREADS; t++)
{
printf("In main:creating thread %d\n", t);
rc = pthread_create(&threads[t], NULL, PrintHello, (void*)t);
if (rc)
{
printf("ERROR:return code from pthread_create() is %d\n", rc);
return -1;
}
}
pthread_exit(NULL);
}