C++11多线程服务器编程Part.1

在之前的学习过程中,关于多线程服务器编程的学习内容主要在Linux上的C语言实现,例如pthread_create,等函数,如今C++11也有很多支持多线程的函数和方法(当然环境选择Linux或者Windows都是可以的),并且更加高效和灵活,学无止境,从这次开始,进入到C++11多线程服务器编程开发的学习中。

C++11提供的的多线程编程接口
高级接口:future,async
低级接口:thread,mutex

#include <vector>
#include <iostream>
#include <iomanip>
#include <thread>
#include <chrono>
#include <future>
#include <cmath>
#include <string>
#include <cstdlib>
#include <unordered_map>
#include <algorithm>
	/*
	at the STD namespace,thread class is a way to create Thread,in my Example,work is a thread object
	work.join well block the MainThread and ask the "work" thread if over,if the "work" thread is over
	the program well continue to run,otherwise,it well always block 
	*/
void HelloWord()
{
   
	std::cout << "Hello Work Thread!" << std::endl;
}

int main()
{
   
	std::thread work(HelloWord);
	std::cout << "Hello Main Thread!" << std::endl;
	work.join();
	return 0;
}

为什么使用多线程

1.随着时代的发展,CPU单核红利已经结束,服务器开发使用多线程大势所趋。
2.多线程有着自身的优势,能有效利用多核计算机的性能。
3.实践验证理论,理论反推动实践,如今操作系统、标准库和第三方库都支持了多线程的API,使用更加方便。
4.多线程和异步I/O的关系,单线程是阻塞I/O,如果操作I/O很耗费时间,势必拖累整体速度,但是多线程不会有这种情况。

#include <vector>
#include <iostream>
#include <iomanip>
#include <thread>
#include <chrono>
#include <future>
#include <cmath>
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值