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