C++——进程与线程
总结:进程是所有线程的集合,每一个线程是进程中的一条执行路径;
例如在有WiFi的情况下,使用爱奇艺下载多部电影,运行爱奇艺软件就是一个进程,多个路径下载多部电影就是不同的线程。
每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。
使用线程可以把占据时间长的程序中的任务放到后台去处理,程序的运行速度可能加快,在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下可以释放一些珍贵的资源如内存占用等等。
.
如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换,更多的线程需要更多的内存空间,线程的中止需要考虑其对程序运行的影响。通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生。
使用多线程原因:提高程序效率
多线程应用:爱奇艺多线程下载、分批发送短信等
1.并发、进程、线程的基本概念
并发:
两个或者多个独立的活动同时进行
并发假象:单核CPU(上下文的切换方式实现并发)
进程:
计算机中的程序关于某一个数据集合上的一次运行活动(exe的运行状态)
线程:
每一个进程都有一个主线程并且只有一个主线程;vs编译器中ctr+f5运行程序,实际上是主线程调用main函数的代码线程可以为一个运行代码的通道,路径,
我们可以自己创建多个线程长沙--北京 长沙--上海---北京
并发的实现
1.多进程实现并发
主要解决的问题进程间通信的问题
No.1一个电脑上:管道,文件,消息队列,内存共享
No.2不同电脑通过SOCKET网络通信实现
2.单个进程,多个线程实现并发,就是一个主线程多个子线实现并发一个进程中的所有线程共享的内存空间例如:全局变量,指针引用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了