线程、进程的基本知识

论坛 股吧 股票     
理财小子   2019-3-17 12:52   35   0

1.为什么要引入多进程和多线程?


计算机的作用在于辅助人们解决问题或者说完成某些特定的工作,假设计算机一次只能处里一个工作。如打开qq的时候不能处理其他的任何事情,不能听音乐,不能看视频,不能编辑文档,这显然是不能满足人们的日常需求的。故而,引入多进程以解决同时运行多个程序的需求。


同样的原因,如果一个进程只能按顺序处理一系列的任务,我们在使用qq给其中一个好友发送信息的时候,将无法同时接收到来自于其他好友的信息,因此引入多线程技术。


可以这样理解:单线程如同只雇佣一个服务员的餐厅,他必须完成一件事情之后才可以做下一件事;多线程的程序如同雇佣多个服务员的餐厅,他们可以同时做很多事情而且几乎互不干扰

2.进程和线程的概念:


进程简单来说就是运行中的程序,如chrome浏览器程序,当它未加载进内存进行运行的时候就是一个静态的程序;当它加载进内存运行时就是动态的一个进程。进程是一个动态的概念,它有自己的生命周期和各种不同的状态;进程是系统进行资源分配的和调度的一个基本单位。


多线程则拓展了多进程的概念,使得同一个进程可以同时并发(或并行)处理多个任务。线程因此也被称为轻量级的进程。每一个程序开始运行的时候至少都会创建一个主线程,线程之间也是互不干扰的,但与进程和进程之间的关系不同,同一个进程的线程之间共用父进程的资源,即线程不单独占有这些资源。

3.图示并发(Concurrency)和并行(Parallel):


其实从英语字面上来理解并发和并行是比较容易的;



多个线程并发执行

其中较粗的箭头表示的是两个独立的线程,细的箭头表示cpu执行跳转(实际上可能没有这么规律),故并发并非真正的同时执行,只是因为cpu跳转时间间隔非常短使得看上去两个线程(或进程)像在同时运行着。

多个线程并行执行

图中假设有一个四核的cpu,每个cpu上都单独运行着一个线程,它们是真正的同时运行着。

4.图示进程和线程:



系统中的线程和进程(理想模型)

图中展示了一个运行着6个进程的操作系统的理想模型,我们将绿色作为系统资源的分块,可以看到每个进程都有自己独立的资源分块;而线程(途中带箭头的直线)之间只能公用父进程所提供的资源,它们都是按依次按序往下执行的且互不干扰;


以上为本人学习总结,本人学识尚浅,如有错误望指正。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

北京快三的走势图 www.zhqud.tw 本版积分规则

积分:4
帖子:19758
精华:0
期权论坛
发布
内容
北京快三的走势图