跳到主要内容

进程和线程

进程和线程

在并发编程中,有两个基本的执行单元:进程和线程。 在Java编程语言中,并发编程主要与线程有关。但是,进程也很重要。

计算机系统通常具有许多活动的进程和线程。 即使在只有一个执行核心也是如此,因此在任何给定时刻只有一个线程实际执行。单个内核的处理时间通过OS被称作时间分片的功能在进程和线程之间共享。

计算机系统具有多个处理器或具有多个执行核心的处理器正变得越来越普遍。 这极大地增强了系统同时执行进程和线程的能力-但即使在没有多个处理器或执行核心的简单系统上,并发也是可能的。

进程

进程具有独立的执行环境。 进程通常具有一套完整的私有基本运行时资源; 特别是,每个进程都有其自己的内存空间。

进程通常被视为程序或应用程序的同义词。 但是,用户视为单个应用程序实际上可能是一组协作进程。为了促进进程之间的通信,大多数操作系统都支持进程间通信(IPC)资源,例如管道和套接字。IPC不仅用于同一系统上的进程之间的通信,而且还用于不同系统上的进程。

Java虚拟机的大多数实现都是作为单个进程运行的。

线程

线程有时称为轻量级进程。 进程和线程都提供执行环境,但是创建新线程比创建新进程需要更少的资源。

线程存在于一个进程中-每个进程至少有一个。 线程共享进程的资源,包括内存和打开的文件。 这样可以进行有效的通信,但可能会出现问题。

多线程执行是Java平台的基本功能。 每个应用程序都至少有一个线程或者几个,如果算上“系统”线程做的事情,如内存管理和信号处理。 但是从应用程序程序员的角度来看,您仅从一个线程(称为主线程)开始。 该线程具有创建其他线程的能力,我们将在下一部分中进行演示。

总结

进程拥有自己独立的内存空间,换言之就是计算机分配内存的单位是进程。线程是在进程中,可以共享进程的资源比如内存。

单个执行核心是通过操作系统的时间分片功能来进行进程和线程之间的处理时间的分配

请作者喝奶茶:
Alipay IconQR Code
Alipay IconQR Code
本文遵循 CC CC 4.0 BY-SA 版权协议, 转载请标明出处
Loading Comments...