C++多线程多进程概述 C++多线程多进程是指在同一个程序中使用多个线程或进程来提高程序的并发度和响应时间。多线程多进程技术可以让程序在同一时间同时执行多条任务,从而提高程序的效率和响应速度。 进程是资源管理的最小单位,线程是程序执行的最小单位。进程管理着资源,而将线程分配到某个 CPU 上执行。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持多处理器系统和减小上下文切换开销。 进程的状态包括新建、运行、阻塞、就绪和完成五个状态。新建状态表示进程正在被创建。运行状态是进程正在运行。阻塞状态是进程正在等待某一个事件发生。就绪状态是表示系统正在等待 CPU 来执行命令。完成状态表示进程已经结束了系统正在回收资源。 引入进程和线程的目的是为了提高效率或者解决高并发的问题,像主流的 httpd server,apache 以及 nginx 都是使用的多进程多线程。 进程和线程的区别在于: 1. 进程执行开销大,但利于资源管理和保护;线程执行开销小,但不利于资源管理和保护。 2. 进程每个进程有自己的地址空间(address space),线程则共享地址空间。 3. 速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。 4. 资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。 5. 同步问题:线程使用公共变量/内存时需要使用同步机制,因为他们在同一个地址空间内。 为什么需要多进程(或者多线程)?因为我们需要更强大的功能,提供更多的服务,所以并发,必不可少。并发技术,就是可以让你在同一时间同时执行多条任务的技术。 多进程是什么?最直观的就是一个个 pid,官方的说法就:进程是程序在计算机上的一次执行活动。进程 pid 会打印出来,然后运行到 return,该函数就退出,然后由于该函数是该进程的唯一的一次执行,所以 return 后,该进程也会退出。 在 Linux 下创建子进程的调用是 fork() 函数。fork() 函数可以创建一个新的进程,该进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。
































剩余9页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 微信小程序脚手架.zip
- 给女朋友做的微信小程序!情侣自己的任务和商城系统!.zip
- 微信小程序--逗乐.zip
- 微信小程序头部导航.zip
- 仿网易云音乐APP的微信小程序.zip
- 基于thinkphp 后台系统的微信小程序商城系统,后端API+前端小程序APP源码.zip
- 微信小程序,扫码签到.zip
- 微信小程序日历打卡组件.zip
- 微信小程序仿通讯录.zip
- 微信小程序toast组件.zip
- 一个反编译微信小程序的工具,仓库也收集各种微信小程序_小游戏.wxapkg文件.zip
- 微信小程序测试,天气预报.zip
- 微信小程序逆向工程.zip
- 微信小程序在线考试系统.zip
- 同城拼车微信小程序后端代码.zip
- 微信小程序播放腾讯视频.zip


