何时使用进程v / s线程?

时间:2011-01-26 06:27:41

标签: multithreading process

我知道线程和进程之间的理论差异。但实际上何时使用线程和进程因为两者都会做同样的工作。

2 个答案:

答案 0 :(得分:3)

一般情况(并且因操作系统而异):

  • 线程通常比进程重量轻
  • 流程在行动之间提供更好的隔离
  • 线程在流程中提供更简单的数据共享和协调

通常情况下,中间点对我来说是踢球者 - 如果你真的,真的不希望两个动作相互干扰,只要一个进程瘫痪不影响其他动作,请单独使用流程。否则我个人会去寻找线程。

(我假设两个模型都可用 - 如果你想运行一个单独的可执行文件,那么在现有的线程中很难做到,至少在我所知道的大多数环境中都是如此。)

答案 1 :(得分:1)

线程是进程的小计。因此,主要区别在于内存分配和CPU时间安排:

  • 操作系统处理每个进程的内存并安排进程的执行时间
  • 您分配内存(在每个进程允许的范围内)并为线程安排执行时间(在每个进程的给定执行时间范围内)

除此之外还有很多微小的定义差异,比如硬件分配(线程可以共享由其进程锁定的硬件),通信(取决于平台/语言/运行时,线程可以共享变量,进程需要管道共享如果您将线程视为原子实体,那么这种区别还有很多,而在这种情况下,过程就是将这些实体分组的方式。