best365足球-365betvip-mobile365体育投注

简约 · 精致 · 专注内容

进程和线程

进程和线程

我们举个例子,假设你要编写一个视频播放器软件,那么该软件功能的核心模块有三个:

从视频文件当中读取数据;对读取的数据进行解压缩;把解压缩后的视频数据播放出来;

对于单进程的实现方式,我想大家都会是以下这个方式:

对于单进程的这种方式,存在以下问题:

播放出来的画面和声音会不连贯,因为当 CPU 能力不够强的时候,Read 的时候可能进程就等在这了,这样就会导致等半天才进行数据解压和播放;各个函数之间不是并发执行,影响资源的使用效率;

那改进成多进程的方式:对于多进程的这种方式,依然会存在问题:

进程之间如何通信,共享数据?维护进程的系统开销较大,如创建进程时,分配资源、建立 PCB;终止进程时,回收资源、撤销 PCB;进程切换时,保存当前进程的状态信息;

那到底如何解决呢?需要有一种新的实体,满足以下特性:

实体之间可以并发运行;实体之间共享相同的地址空间;

这个新的实体,就是线程( Thread ),线程之间可以并发运行且共享相同的地址空间。

相关推荐

Linux 中 .d 是什么文件

Linux 中 .d 是什么文件

best365足球 07-01
金利来Goldlion品牌介绍

金利来Goldlion品牌介绍

best365足球 07-04
软盘驱动器安装在哪里 软盘驱动器怎么安装
卖掉首笔投资,字节跳动全盘转让图虫 图文生意不“香”了?
【英语单词】彻底解释“personalize”! 含义、用法、例句、如何记忆
儿科急诊?丁香园站友们有话说