如何建设互联网政务门户网站,加工活外放的正规公司,极简 单页面网站模板,软件开发公司网络安全管理制度c/cpp - 多线程/进程 基础1. 概念1.1 程序1.2 任务1.3 多任务1.4 进程1.5 线程1.5 线程/进程应用程序/系统资源并发/并行/同步/异步1. 概念
1.1 程序 代码、指令#xff0c;静态的 1.2 任务 具体要做的实景#xff0c;可以是基于进程、或基于线程 1.3 多任务 例如#xff1…
c/cpp - 多线程/进程 基础1. 概念1.1 程序1.2 任务1.3 多任务1.4 进程1.5 线程1.5 线程/进程应用程序/系统资源并发/并行/同步/异步1. 概念
1.1 程序 代码、指令静态的 1.2 任务 具体要做的实景可以是基于进程、或基于线程 1.3 多任务 例如当执行的程序执行I/O操作时操作系统会将CPU资源分配给其他等待执行的程序 两种类型的多任务 基于进程基于进程的多任务处理是程序的并发执行 基于线程基于线程的多任务处理是同一程序的片段的并发执行 1.4 进程 进程正在执行的应用程序多任务操作系统可以控制各个进程的执行状态如终止某个正在执行的进程启动某个暂停执行的进程 是动态的程序的实例化 操作系统负责为每个进程分配独立的内存和其他资源I/o设备文件等 进程执行完毕后操作系统会将进程占用的资源全部回收 补充-早期多进程 早期的做任务操作系统是以进程为单位管理各个程序的运行以及计算机的分配和回收 缺点 操作系统将CPU资源从一个进程分配给另一个进程时开销较大各个进程占用的内存空间相互独立进程间通信难度大一个进程可能会执行多个任务子任务当某个任务因I/O操作暂停执行时其他任务将无法执行在无多线程的情况下 1.5 线程 为解决早起多进程缺点引入线程 线程执行应用程序中的某个具体任务进程正在执行的应用程序具体任务一段程序等 一个进程可以有多个线程线程之间共享进程的资源 1.5 线程/进程 进程之间独立 进程内为多个线程提供资源 进程内多个线程共享资源 进程内每个线程不同的具体任务 进程内各个线程可以拥有自己的独立私有资源 每个进程执行前操作系统会为其分配所需的资源程序代码、数据、内存空间、文件资源等 一个进程必须包含至少一个线程主线程 /*
公司程序1一个多进程的程序进程1工厂1- 线程1工人1- 线程2工人2进程2工厂2- 线程3工人3- 线程4工人4
*/应用程序/系统资源 操作系统支持同时执行多个应用程序为避免多个应用程序访问系统资源(文件资源、I/O设备、网络等)时产生冲突操作系统会将可能产生冲突的系统资源保护起来阻止应用程序直接访问 应用程序需要访问系统资源时需要调用系统API 并发/并行/同步/异步
并发 计算机能够同时执行多项任务 并发的形式有许多不同 单核处理器时间分片的形式一个任务执行一段时间也就是任务交替进行。也被称为进程或者线程的上下文切换 多核处理器在多个核心上真正并行的执行任务也就是以并行的形式实现并发 并行 多核心并行执行任务 同步 同步必须等到前一个任务执行完毕之后才能执行下一个任务 在同步中没有并发和并行的概念 异步 不同任务之间并不会相互等待先后执行即在执行任务A的时候也可以同时执行任务B 也就多线程编程 补充 多线程编程多核心并发适用于计算密集型应用程序 单线程异步编程强制单核心并发适用于I/O操作密集型应用程序