《VS配置pthread多线程库》

POSIX标准包含了一系列用于多线程编程的API(pthread),除了win32之外,许多现代的操作系统都渐渐开始支持pthread。

我的配置:windows10+VS2010

一、下载pthread多线程库

1、pthread多线程库下载地址:ftp://sourceware.org/pub/pthreads-win32

里面有三种格式提供下载,exe、tag.gz、zip,选择一个较新的版本下载


2、这里我选择下载了一个zip的,下载完之后,进入到下载文件夹,将压缩包进行解压,会出现三个文件夹,Pre-built.2里面有2个文件夹使我们等下要用到的,包含文件include和库文件lib。


二、VS2010配置pthread多线程库

1、添加包含目录
新建一个空的C++工程项目项目-> 属性-> 配置属性-> VC++目录-> 包含目录添加Pre-built.2里面的包含文件include文件

2、添加库目录

项目->属性->配置属性->VC++目录->库目录,添加Pre-built.2里面的库文件lib文件

3、添加附加依赖项

项目->属性->配置属性->链接器->输入->附加依赖项,添加Pre-built.2里面的库文件lib文件夹里的.lib文件(x86),最好是把路径也加上,不然可能会出现找xxx.lib这种情况,点击应用和确认,到这里就配置完了。



三、多线程测试代码

#include <iostream>
//< 必须的头文件
#include "pthread.h" 

using namespace std;

#define NUM_THREADS 5

//< 线程的运行函数
void* say_hello(void* args)
{
	cout << "Hello Runoob!" << endl;
	return 0;
}

int main()
{
	//< 定义线程的 id 变量,多个变量使用数组
	pthread_t tids[NUM_THREADS];
	for(int i = 0; i < NUM_THREADS; ++i)
	{
		//<参数依次是:创建的线程id,线程参数,调用的函数,传入的函数参数
		int ret = pthread_create(&tids[i], NULL, say_hello, NULL);
		if (ret != 0)
		{
			cout << "pthread_create error: error_code=" << ret << endl;
		}
	}
	//<等各个线程退出后,进程才结束,否则进程强制结束了,线程可能还没反应过来;
	pthread_exit(NULL);
}

【输出结果】



猜你喜欢

转载自blog.csdn.net/mars_xiaolei/article/details/80332930
今日推荐