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

                       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++多线程中的其它方法进行介绍,以及子线程互斥和主子线程冲突进行探讨。




本专栏目录

所有内容的目录

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值