线程和进程都有一些相似之处。一个进程可以创建另一个进程,然后我们称它为子进程,作为它的第一个父进程。但它也可能创建一个线程。在这种情况下,您可能会将线程视为一小段指令。与进程不同,线程可以与其他线程共享相同数量的内存,而每个进程必须有自己的不可共享空间。
一旦它们共享内存,我们可以说线程比进程需要更少的资源,避免操作系统为每个正在执行的线程提供一个特殊区域。通常,与进程相比,线程具有“较低的成本”。
进程:进程意味着任何程序正在执行中。进程控制块控制任何进程的操作。进程控制块包含有关进程的信息,例如进程优先级、进程 ID、进程状态、CPU、寄存器等。进程可以创建其他进程,这些进程称为子进程。进程需要更多时间来终止,并且它是隔离的,这意味着它不与任何其他进程共享内存。
该进程可以具有以下状态,例如新的、就绪的、运行的、等待的、终止的、暂停的。
线程:线程是一个进程的段,意味着一个进程可以有多个线程,并且这些多个线程包含在一个进程中。一个线程有 3 种状态:运行、就绪和阻塞。
与进程相比,线程终止所需的时间更少,并且类似的进程线程不会隔离。
进程和线程的区别:
编号
进程
线程
1.
进程意味着任何程序都在执行中。
线程意味着进程的片段。
2.
进程需要更多时间来终止。
线程终止所需的时间更少。
3.
创作需要更多时间。
创建所需的时间更少。
4.
上下文切换也需要更多时间。
上下文切换所需的时间更少。
5.
流程在沟通方面效率较低。
线程在通信方面更有效。
6.
进程消耗更多资源。
线程消耗更少的资源。
7.
进程被隔离。
线程共享内存。
8.
进程称为重权重进程。
线程被称为轻量级进程。
9.
进程切换使用操作系统中的接口。
线程切换不需要调用操作系统并导致内核中断。
10.
如果一个进程被阻塞,则不会影响其他进程的执行
同一任务中的第二个线程无法运行,而一个服务器线程被阻塞。
11.
进程有自己的进程控制块、堆栈和地址空间。
线程有父母的PCB,它自己的线程控制块和堆栈以及公共地址空间。
进程与线程:优点和缺点
进程
线程
进程是重量级的操作。
线程是重量较轻的操作。
每个进程都有自己的内存空间。
线程使用它们所属进程的内存。
由于进程具有不同的内存地址,因此进程间通信很慢。
线程间通信可以比进程间通信更快,因为同一进程的线程与它们所属的进程共享内存。
进程之间的上下文切换成本更高。
同一进程的线程之间的上下文切换成本更低<.>
进程不与其他进程共享内存。
线程与同一进程的其他线程共享内存。
并发性和并行性如何?
您可能会问的一个问题是进程或线程是否可以同时运行。答案是:视情况而定。在具有多个处理器或 CPU 内核的系统上(现代处理器很常见),可以并行执行多个进程或线程。但是,在单个处理器上,不可能真正同时执行进程或线程。在这种情况下,使用进程调度算法在运行的进程或线程之间共享 CPU,该算法划分 CPU 的时间并产生并行执行的错觉。分配给每个任务的时间称为“时间片”。任务之间的来回切换发生得如此之快,以至于通常无法察觉。术语“并行性”(真正的同时执行)和“并发性”(在时间上交错进程以呈现同时执行的外观),