
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
线程与进程是程序员在学习计算机编程开发技术的时候需要重点掌握的一个概念,下面我们就通过案例分析来了解一下,软件开发进程与线程概念解析。
进程
进程(Process)是操作系统分配资源的基本单位,一个进程拥有的资源有自己的堆、栈、虚存空间(页表)、文件描述符等信息。
从编程的角度来理解进程,可以把它看作是一个类或一个PCB(ProcessControlBlock)进程控制块的结构体,这个结构体中大致包含以下几个内容:
进程编号PID:进程的身份标识。
进程的状态:
新建状态
就绪状态
运行状态
阻塞状态
销毁状态
执行优先级
上下文:保存本次执行状态,以便下次继续执行,这个过程就是一个上下文。
内存地址
线程
线程(Thread)是操作系统能够进行运算调度的基本单位。它包含在进程中,是进程中的实际运行单位。在UnixSystemV及SunOS中线程也被称为轻量进程(lightweightprocesses),但轻量进程更多指内核线程(kernelthread),而把用户线程(userthread)称为线程。
PS:用户线程可以理解为应用程序自己的线程,由程序员创建并控制的线程;而内核线程是内核支持并使用的线程。
线程优势
线程是轻量级的进程,一个进程中包含了多个线程,因此多个线程间可以共享进程资源。其中,堆和方法区是可以共享的区域,而程序计数器和栈是每个线程私有的。
程序计数器是一块内存区域,用来记录线程当前要执行的指令地址。
栈是用来记录每个线程自己的局部变量的。
堆中存放的是当前程序创建的所有对象。
方法区存放的是常量和静态变量等信息。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。