【问题标题】:Multithreading vs virtual process多线程与虚拟进程
【发布时间】:2011-07-14 08:08:28
【问题描述】:

控制流模型分为三种类型, 单线程、虚拟进程和多线程进程。 这是我在学习表格中写的内容

虚拟进程。这是基于一个 单线程模型,但给出了 并发执行的外观。一种 控制器组件调度 执行其他组件和 给他们控制权。调度可以 定期或基于 事件。该模型基于一个 活动的逻辑分解 执行需要的简单步骤 只有很短的时间间隔。

看不懂,看不懂多线程进程和vp的区别。 有人可以帮忙吗?

编辑这里是我在上面提到的这本书的章节形式 http://www.mediafire.com/?ru82i0nvp12qw6t

【问题讨论】:

  • 您的问题不是很清楚/没有多大意义……您所说的“虚拟进程”是什么意思?
  • 好的,我会添加更多细节,请稍等。
  • 虚拟进程听起来像协作多线程。
  • 什么是协作多线程?
  • 您对诸如“虚拟进程”之类的虚假术语并不领先。只需删除该 powerpoint 文件,然后从您的本地图书馆中获取一本关于操作系统设计的真正书籍。

标签: multithreading process operating-system virtual


【解决方案1】:

“虚拟进程”这个术语很不寻常,但根据您的描述,我可以给出 2 个实际使用示例。

对于多线程,假设您在内存中有大量数据并希望对其执行一些计算...您可以将这些数据拆分并让单独的线程(理想情况下,每个 CPU 内核 1 个)同时处理不同的数据块数据。这样,计算将根据您创建的线程数更快地完成。

对于“虚拟进程”,假设您需要从远程服务器检索 20 个文件……其中涉及的大部分 CPU“工作”只是坐在那里等待来自远程网络的字节到达。创建单独的线程来下载这些文件中的每一个不会使文件更快到达。如果有的话,有额外的线程需要操作系统不断切换(它会切换很多,因为大多数时候每个线程只会说'我还在等待'然后放弃控制权)。因此,在这种情况下,最好让一个线程完成所有下载,在每个下载任务之间进行内部循环,以从其缓冲区中读取传入数据。

【讨论】:

  • 很多,但我不知道这是否是正确的描述,因为在我的描述中,模型是基于活动的逻辑分解,所以我们可以假设活动本身不存在,他们与一项实际任务有关,我是这么认为的,但我不知道是否正确!
  • 在这种情况下,正在下载的每个文件都是一个活动
【解决方案2】:

您的虚拟进程在我看来就像事件驱动编程。谷歌例如。 'threads vs events',你得到的first link 是很好的比较。

编辑:这是我在书签中找到的另一个comparison

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2018-09-27
    • 2011-12-27
    相关资源
    最近更新 更多