C++并发基本概念及实现、进程、基本概念

一.并发,进程,线程的基本概念和综述

并发

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

以往计算机,单核cpu(中央处理器):某一个时刻只能执行一个任务:由操作系统调度,每秒钟进行多次所谓的"任务切换"。这是并发的假象(不是真正的并发);这种切换(上下文切换)是要有时间开销的。

使用并发的原因:同时可以执行多个任务,提高性能。

可执行程序

磁盘上的一个文件,例如windows下.exe,linux,1s-la,rwxrwxrwx(x执行权限);

进程

windows下,双击一个可执行程序来运行。linux下./文件名//进程

就是一个可执行程序运行起来了,就叫创建了一个进程;

进程:运行起来了的可执行程序。

线程

线程是代码的执行道路(从上到下执行完毕)。

每个进程都有一个主线程,这个主线程是唯一的,产生了一个进程后这个主线程就随着这个进程启动起来了。

运行一个程序实际上是进程的主线程来执行main函数的代码。主线程和进程的寿命完全一致,主线程执行到return结束后,进程也随之结束。

出主线程外还可以通过代码创建其他线程,其他线程走的是别的道路甚至去不同的地方。每创建一个新线程就可以在同一个时刻多干一个不同的事(多走一条代码的不同路径)。

多线程(并发)

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

二:并发的实现方法

两个或者更多的任务(独立的活动)同时发生(进行)

实现并发的手段:

  • 通过多个进程实现并发。
  • 在单独的进程中,创建多个线程来实现并发;自己写代码来创建除了主线程之外的其他线程;
多进程并发

进程之间通信(同一个电脑上:管道,文件,消息对列,共享内存);

不同电脑上:socket通信技术;

多线程并发:单个进程中,创建了多个线程。(建议)

每个线程都有自己独立的运行路径,但是一个进程中的所有线程共享地址空间(共享内存)

全局变量,指针,引用都可以在线程之间传递,所以:使用多线程开销远远小于多进程。

相关推荐
夜之眷属8 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
用户094248568039 小时前
第31章:JVM字节码解释器与模板解释器源码路径
java·jvm
物联网软硬件开发-轨物科技9 小时前
【轨物洞见】什么是产品碳足迹(PCF)?ISO 14067 计算方法与应用场景深度解读
大数据·网络·人工智能
阿俊-全栈开发11 小时前
LikeShop 版本升级与备份:从旧版平滑迁移的完整步骤
jvm·数据库·oracle·开源·likeshop·likeshop开源商城
姜鱼问生12 小时前
docker exec 排查容器问题:从日志到进程
运维·网络·数据库·docker·容器
qq_5434478212 小时前
DNS解析怎么排查?故障处理与运维实用手册
运维·服务器·网络·php
Nebula_g13 小时前
JavaSE加强:线程Thread(线程安全重点)
java·开发语言·jvm·算法·javase·技术栈
JAVA面经实录91713 小时前
Java高级后端 · 全套面试通关手册(线上故障排查)
java·jvm·面试
威胁猎人14 小时前
网络水军产业风险研究报告
网络
独钓寒江雨14 小时前
路由器单MAC多IP支持功能未开启致业务异常
网络·数通·故障·中兴·m6000·单mac多ip