-
进程
每个进程都提供执行程序所需的资源。进程具有虚拟地址空间、可执行代码、对系统对象的打开句柄、安全上下文、惟一进程标识符、环境变量、优先级类、最小和最大工作集大小,以及至少一个执行线程。每个进程通常由一个主线程启动,但是会有额外线程开销,总的来说一个进程包含了多个线程。
-
线程
线程是进程中的一个实体,可以计划执行。进程的所有线程共享其虚拟地址空间和系统资源。此外,每个线程维护异常处理程序、调度优先级、线程本地存储、惟一的线程标识符和一组结构,系统将使用这些结构保存线程上下文,直到它被调度。线程上下文包括线程的机器寄存器集、内核堆栈、线程环境块和线程进程地址空间中的用户堆栈。
-
进程是操作系统的最小的可执行程序(有时候一个Application由多个进程一起组成),由CPU来调度运行(多核CPU下可以并行运行),每个进程都有自己的私有分配内存,进程号,可以设置优先级。操作系统可以中断进程运行。
-
线程是可以并发执行的,应用于高并发系统的,线程运行在进程的黑盒里面,共享虚拟内存与资源,线程之间可以并发运行,存在资源竞争的现象,并且线程之间会有上下文切换的消耗,通常在OOP面向对象语言中,会用锁机制来确保线程之间的安全性。
小例子
JAVA程序中的Main函数在windows系统上是以.exe方式执行的是一个进程,跑在里面的Thread是一个线程。
网友评论