栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++多线程基础理解

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++多线程基础理解

概念

1.1 并发

定义:两个或者更多任务(独立的活动)同时发生(进行): 一个程序同时执行多个独立的任务;

原因: 主要可以同时进行多个事情,提高性能。

1.2 进程

进程就是运行起来的可执行程序。

1.3 线程

每个进程(执行起来的可执行程序), 都有唯一的一个主线程;当执行可执行程序时, 产生一个进程后,这个主线程就随着这个进程默默启动起来了,主线程和进程唇齿相依。

线程: 用来执行代码的。线程可理解为一条代码的执行通路。

除了主线程之外,可以通过写代码来创建其他线程,其他线程走的是别的道路,甚至可以去不同的地方。

每创建一个新线程,就可以再同一时刻,多干一个不同的事(多走一条不同的代码执行路径)。

1.4 多进程并发

比如账号服务器一个进程,游戏服务器一个进程。服务器进程之间存在通信(消息队列,共享内存。 word启动后就是一个进程,ie浏览器启动后就是一个进程。

1.5 多线程并发

线程:轻量级的进程。每个进程有自己独立的运行路径,但一个进程中的所有线程共享地址空间(共享内存),全局变量、指针、全局内存、全局引用都可以在线程之间传递,所以多线程开销远远小于多进程;

共享内存带来的新问题,数据一致性问题;线程A, 线程B向一个内存写数据得控制先后顺序。

线程并不是越多越好,每个线程,都需要一个独立的堆栈空间(大约1M),线程之间的切换要保存很多中间状态,切换也会耗费本该属于程序运行的时间;

线程创建
#include  //类标准库
#include
using namespace std;

int main()
{
   thread my_thread;
   if(my_thread.joinable()) 
   {
       my_thread.join();//等待子线程
   }
   return 0; 
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/866897.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号