单线程进程是否只包含一个线程?

问题描述:

有人可以给出更多的解释单线程和多线程的进程

单线程进程是否只包含一个线程?或者它意味着该进程可以包含多个线程,并且一次只能运行一个线程,然后在它们之间进行上下文切换?

如果我在单核处理器上运行java程序,第二个是真的吗?

有人可以进一步解释吗?单线程进程是否只包含一个线程?

+1

单CPU或核心VS多CPU是与进程中有多少个线程正交(所有四个选项都可用)。 – Richard

单线程进程是一个单线程进程。多线程进程是一个具有多个线程的进程。

命名基于静态配置,即您可以查看执行暂停时的进程并说明它是单线程还是多线程。就命名而言,线程是在单核还是多核上执行并不重要。

多个线程全部在单个内核上执行的进程可能具有竞争条件,跨多个线程执行的进程也可能具有竞争条件。区分这两种情况对于性能评估非常重要,但对于正确性会产生反效果(即,在考虑潜在竞争时,假设每个线程位于单独的CPU上是有用的)。

单线程程序程序只使用一个线程。 进程可能有其他线程;对于Java运行时的例子,你可以期望有一个终结器线程,或许有一个或多个线程用于垃圾收集。这是一个单线程程序在多线程进程中运行。

(我听说“过程”定义为“在执行程序的抽象”,即你写一个程序,然后在过程中执行它。)