您的位置:首页 > 其它

程序、进程、线程、并行和并发到底是什么?

2018-10-02 00:57 465 查看

打个比方,我们生活中需要完成“做饭吃”这个工作,做这个工作需要借助“厨房”这个平台,“厨房”就是我们的程序;我们要用厨房做一盘菜,“做这盘菜”就是一个进程;那么显而易见,做菜的每一个步骤就是一个线程啦。

在做菜的过程中多个人多核)帮忙,一人准备材料、一人掌勺,同时运行更多的线程,速度提高了许多呢,这是不是就是多线程并行工作呢?

在者,准备材料的人在把前面的材料准备完后情急的情况下可以去趟厕所,这就是多进程并行吧。

协程、并行和并发参看这篇博文。简单说来,并行是物理上支持(看起来像)同时运行,并发是程序的一种设计理念——将任务拆分成平行的模块共同运行。

经验不足不做过多的深究。

※ 参考资料:

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。——百度百科

进程(英语:process),是指计算机中已运行的程序。进程为曾经是分时系统的基本运作单位。在面向进程设计的系统(如早期的UNIX,Linux 2.4及更早的版本)中,进程是程序的基本执行实体;在面向线程设计的系统(如当代多数操作系统、Linux 2.6及更新的版本)中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。若干进程有可能与同一个程序相关系,且每个进程皆可以同步(循序)或异步(平行)的方式独立运行。现代计算机系统可在同一段时间内以进程的形式将多个程序加载到存储器中,并借由时间共享(或称时分复用),以在一个处理器上表现出同时(平行性)运行的感觉。同样的,使用多线程技术(多线程即每一个线程都代表一个进程内的一个独立执行上下文)的操作系统或计算机体系结构,同样程序的平行线程,可在多CPU主机或网络上真正同时运行(在不同的CPU上)。——维基百科

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。——维基百科

  • “哲学家进餐”问题的代码实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐