多线程编程1-多线程编程简介

文章目录


为什么用多线程来做服务器?
1)当前机器的单核红利已经结束了
linux下的

进程:process(linux for windows CreateProcess,会产生信号)
线程: thread (POSIX threads)
(涉及到数据计算和数据I/O,一般服务器的瓶颈:
①数据处理有问题,处理数据太慢,没法及时发送给客户端
②算法太挫,速度太慢,即使请求响应太慢
要在数据I/O和计算找到平衡点
)

2)多线程拥有自身的优势
新时代的multithread goto , 可能的问题包括:

(1) 死锁
(2) 乱序
(3) 并发访问数据造成问题
(4) 低效率

3)C++给我们带来的新概念

(1) 高阶接口:(async , future) – 我可能并发地做了某些事情,但是不是用了多线程,不告诉你,你也不用关心,你只知道两件事情可以一块去做
(2) 低阶接口:(thread , mutex) – 偏向于机器,偏向于CPU这样的接口就是thread,跟操作系统的语法较为接近,就是显式地开了thread去做某些事情

4)开启一个线程做事举例
编译:
make
g++ -std=c++11 -02 -o LearnThread LearnThread.cpp -lpthread

void helloworld()
{
	std::cout<<"hello world\n";
}
int main()
{
	//开启一个线程
	std::thread t(helloWorld);

	//终结线程,等待子线程工作做完
	//但是可能先执行t.join()后再打印std:;thread的打印
	t.join();
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值