有人可以为单线程和多线程进程提供更多解释
单线程进程只包含一个线程吗?或者它意味着该进程可以包含多个线程并且一次只能运行一个线程,然后在它们之间进行上下文切换?
如果我在单个核心处理器上运行java程序则是第二个会是真的吗?
有人可以进一步解释吗?
答案 0 :(得分:2)
单线程进程是一个具有单个线程的进程。多线程进程是一个具有多个线程的进程。
命名基于静态配置,即您可以在执行暂停时查看进程,并说明它是单线程还是多线程。线程是否在单个内核或多个内核上执行并不重要,只要命名法如此。
在单个核心上执行多个线程的进程可能具有竞争条件,多个核心执行多个线程的进程也可能具有竞争条件。区分这两种情况对于性能评估很重要,但对正确性起反作用(即,在考虑潜在的竞争时,假设每个线程都在一个单独的CPU上是有用的。)
单线程程序是仅使用一个线程的程序。 进程可能有其他线程;对于Java运行时的示例,您可以期望有一个终结器线程,也许还有一个或多个线程用于垃圾回收。它是在多线程进程中运行的单线程程序。
(我已经听过&#34;进程&#34;定义为&#34;执行中程序的抽象&#34;,即你编写一个程序然后在一个过程中执行它。)< / p>
答案 1 :(得分:0)
单线程并不意味着单核,单进程。 单线程进程包含单个序列中的指令执行。换句话说,一个命令是一次处理