有人可以对单线程和多线程进程进行更多解释单线程进程
是否只包含一个线程?或者这意味着该进程可以包含多个线程并且一次只能运行一个线程,然后在它们之间进行上下文切换?
如果我在单核处理器上运行 java 程序,第二个会是真的吗?
有人可以进一步解释吗?
问问题
3221 次
2 回答
3
单线程进程是具有单线程的进程。多线程进程是具有多个线程的进程。
命名基于静态配置,即您可以查看暂停执行时的进程,并判断它是单线程还是多线程。就命名法而言,线程是在单核还是多核上执行并不重要。
具有多个线程都在单个内核上执行的进程可能具有竞争条件,具有跨多个内核执行的多个线程的进程也是如此。区分这两种情况对于性能评估很重要,但对正确性会适得其反(即,在考虑潜在竞争时,假设每个线程都在单独的 CPU 上很有用)。
单线程程序是只使用一个线程的程序。该进程可能有额外的线程;对于您的 Java 运行时示例,您可以期望有一个终结器线程,并且可能有一个或多个用于垃圾收集的线程。它是在多线程进程中运行的单线程程序。
(我听说“进程”被定义为“执行中的程序的抽象”,即你编写一个程序,然后在一个进程中执行它。)
于 2016-04-30T15:41:56.703 回答
0
单线程并不意味着单核、单进程。单线程进程包含以单个序列执行指令。换句话说,一个命令是一次处理
于 2019-06-01T12:34:17.513 回答