7.2.1 - 并发多线程 进程理论知识


一 什么是进程

进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。

二 进程与程序的区别

程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。

举例:

我在家做韭菜炒鸡蛋,我有做韭菜炒鸡蛋食谱,厨房里有所需的原料:鸡蛋、韭菜,蒜泥,大葱,生姜等。

1. 韭菜炒鸡蛋食谱就是程序。

2. 而做韭菜炒鸡蛋的各种原材料就是数据输入。

3. 进程就是厨师阅读食谱、取来各种原料以及炒韭菜炒鸡蛋等一系列动作的总和

需要强调的是:同一个程序执行两次,那也是两个进程,比如你打开两个QQ,两个QQ是独立的。

三 并发与并行

无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务

一 并发:是伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发

二 并行:同时运行,只有具备多个cpu才能实现并行

四 进程的状态

tail -f access.log |grep '404'

执行程序tail,开启一个子进程,执行程序grep,开启另外一个子进程,两个进程之间基于管道'|'通讯,将tail的结果作为grep的输入。

进程grep在等待输入(即I/O)时的状态称为阻塞,此时grep命令都无法运行

其实在两种情况下会导致一个进程在逻辑上不能运行,

  1. 进程挂起是自身原因,遇到I/O阻塞,便要让出CPU让其他进程去执行,这样保证CPU一直在工作

  2. 与进程无关,是操作系统层面,可能会因为一个进程占用时间过多,或者优先级等原因,而调用其他的进程去使用CPU。

因而一个进程由三种状态

优质内容筛选与推荐>>
1、读取二进制字段内容代码
2、【活动】参加葡萄城控件主办的“谁是报表达人”知识评测活动,赢取iPad Mini2
3、又回母校了
4、CC150
5、判断目录下的文件是否为图片


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号