并发编程2
概念:
并发:伪并行,即看起来是同时运行。(单个cpu+多道技术可以实现并发)
注意:多道技术只是针对单核的说法
并行:同时运行,只有具备多个cpu才能实现
串行:安装顺序执行
三者对比
阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起(如遇到io操作的时候)。
非阻塞:和阻塞的概念想对应,指在不能立刻得到结果之前也会立刻返回,不阻塞当前进程
小结:阻塞与非阻塞针对的是进程或线程:阻塞是当请求不能满足的时候就将进程挂起,而非阻塞则不会阻塞当前进程
进程的创建
只要是硬件,就需要操作系统去管理,只要有操作系统,就有进程的概念,就需要有创建进程的方式
进程的创建主要有四种:
1,系统初始化
2,一个进程在运行过程中开启了子进程
unix和windows:
相同点:父进程子进程有各自不同的地址空间,一个进程的修改不会影响另外的进程
不同点:UNIX中,子进程的初始地址空间是父进程的一个副本
windows中,一开始父子进程的地址空间就是不一样的
3,用户的交互式请求,而创建一个新进程】
4,一个批处理的初始化(只在大型机的批处理系统中应用)
注意:
新进程的创建都是由一个已经存在的进程执行了一个用于创建进程的系统调用二创建的:
1,UNIX中该系统调用是:fork,会创建一个与父进程相同的副本
2,windows中该系统调用是:CreateProces,既处理进程的创建,也负责吧正确的程序装入新进程
进程的层次结构:
1,UNIX中所有进程都以init进程为根,组成树型结构。
2,windows中,所有进程的地位相同,没有进程层次的概念
进程的状态