有三种类型的控制流模型, 单线程,虚拟进程和多线程进程。 这是我学习形式的权力点所写的内容
虚拟流程。这基于a 单线程模型,但给出了 并发执行的外观。一个 控制器组件安排 执行其他组件和 让他们控制。调度可以 定期或基于 事件。这个模型基于a 中的活动的逻辑分解 执行所需的简单步骤 只有很短的时间间隔。
我无法理解它,也无法理解多线程进程和vp之间的区别。 有人可以帮忙吗?
编辑这里是我提到上一节表格的那一章 http://www.mediafire.com/?ru82i0nvp12qw6t
答案 0 :(得分:1)
这个术语“虚拟过程”很不寻常,但根据您的描述,我可以给出两个使用每个实例的实际例子。
对于多线程,假设你在内存中有很多数据,并希望对它进行一些计算...你可以将数据分开并具有单独的线程(理想情况下每个CPU核心1个)同时工作在不同的数据块上。这样,根据您创建的线程数量,计算速度会更快。
对于“虚拟进程”,假设您需要从远程服务器检索20个文件...涉及的大部分CPU“工作”只是等待从远程网络到达的字节。创建单独的线程来下载每个文件不会使文件更快地到达。如果有的话,有额外的线程,操作系统需要不断切换(它会切换很多,因为大多数时候每个线程只会说'我还在等待',然后放弃控制)。因此,在这种情况下,最好让一个线程执行所有下载,在每个下载任务之间进行内部循环,以读取缓冲区中的数据。
答案 1 :(得分:1)
您的虚拟进程对我来说就像事件驱动编程一样。谷歌为例如。 “threads vs events”,你得到的first link是非常好的比较。
编辑:这是我在书签中找到的另一个comparison。