码迷,mamicode.com
首页 > 编程语言 > 详细

C++拾遗--C++多线程引入

时间:2015-03-01 17:12:12      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:多线程   c++   异步   并发   thread   

                       C++拾遗--C++多线程引入

前言

    C++库文件也提供了对多线程的支持,主要包含头文件thread即可使用C++中的多线程。它的一些与多线程有关的方法和C语言不同。我们有必要来探讨下C++编程下如何使用多线程。

正文

1.示例

与C语言多线程引入相同,我们先看一个C++多线程的示例。

#include <iostream>
#include <thread>    //C++中的多线程头文件
#include <Windows.h>
using namespace std;
void run(const void *p)
{
	const char *mess = (const char*)p;
	printf("线程 id = %ld\n", GetCurrentThreadId());
	MessageBoxA(NULL, mess, "thread", 0);
}
int main()
{
	printf("******C++多线程引入***by David***\n");
	//创建四个线程
	thread t1(run, "I");
	thread t2(run, "LOVE");
	thread t3(run, "YOU");
	thread t4(run, "BABY");
	//阻塞主线程
	t1.join();
	t2.join();
	t3.join();
	t4.join();
	return 0;
}
运行

技术分享

在栈上开辟空间创建四个线程,并行地弹出四个窗口。从左到右即是窗口弹出的先后顺序,从结果看,它们是并发的、异步的。


2.总结

在C++中创建多线程很简单,使用标准库提供的thread类即可。在创建线程实例时,指定线程函数和函数实参。

函数join()

功能:阻塞调用线程,直到该线程结束后,调用线程才能继续执行。

例如,t1.join();会阻塞主线程,直到线程t1执行结束,主线程才会接着往下执行。


后面我们会对C++多线程中的其它方法进行介绍,以及子线程互斥和主子线程冲突进行探讨。




本专栏目录

所有内容的目录

C++拾遗--C++多线程引入

标签:多线程   c++   异步   并发   thread   

原文地址:http://blog.csdn.net/zhangxiangdavaid/article/details/44002051

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!