线程与进程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程与进程相关的知识,希望对你有一定的参考价值。
进程:一个内存中的可执行程序,提供程序运行的各种资源。拥有虚拟的地址空间,可执行代码,数据,对象句柄集,环境变量,基础优先级,以及最大最小工作集。
线程:系统处理机调度的基本单位。可执行进程中任意代码,包括正在被其他线程执行的代码。进程中的所有线程共享进程的虚拟地址空间和系统资源。每个线程拥有自己的例外处理过程,一个调度优先级以及线程上下文数据结构。线程上下文数据结构包含寄存器值,核心堆栈,用户堆栈和线程环境块。
进程和线程的关系:
进程是容器:每个windows进程开始于它的被默认创建的第一个线程,通常称其为主线程。说明进程含有至少一个线程。主线程和其它的线程没有任何区别,每个线程都可以创建新的线程。进程中所有线程都结束时进程会自动被结束,而主动结束进程时,如果还有线程没完成,则系统自动结束这些线程。从多进程并发的角度来看,进程仍然是一个动态的实体,但它的动态是它的线程的动态特征的抽象。举个例子,一个进程含有3个线程,那么当3个线程都阻塞时,进程表现为阻塞。但只要有一个线程是就绪态,哪怕其它2个线程是阻塞态,进程仍然表现为就绪。从线程的角度看,进程表现的更像一个容器,它代表线程接受分配到的资源(除处理机资源),为线程提供主体(执行代码+数据),自己却没有运行的概念。此时,进程是静态的实体。
以上是关于线程与进程的主要内容,如果未能解决你的问题,请参考以下文章