进程与线程
2021-06-19 14:03
标签:相关 扩展 不同的 nbsp 处理 复制 描述 用户 静态资源 一、共同点 功能上都是用于实现多任务并发程序设计的技术手段,线程的状态包括就绪、执行与阻塞,与进程类似 二、区别 1、定义 进程:进程是一个用户程序在同一数据集合上的一次执行过程,而在不同数据集合上或者同一数据集合的不同运行都是不同的进程。 进程是资源分配的基本单位 进程可以创建多个线程,且最少创建一个主线程 线程:线程是进程细化后的一个实体 线程是系统调度的基本单位 线程只能属于一个进程 2、系统开销 开销小于进程开销,切换效率高于进程(创建、销毁) 进程:需要独立的数据段,代码段、扩展段等系统资源,创建时需要复制(写时复制)父进程的所有资源。但是进程因为有独立的数据段、堆栈段,所以更加稳定、安全。 线程:与其它线程共享进程的系统资源,每个线程只需要拥有自己的栈段和寄存器,用于存储局部变量和临时变量。 3、资源分配 进程:所维护的是程序所包含的资源(静态资源),比如:虚拟地址空间(代码、数据、堆、共享库)、文件系统信息、文件描述符表和信号处理程序等。 线程:所维护的运行相关的资源(动态资源),比如:运行栈、调度相关的控制信息、待处理的信号集等。 4、通信机制 进程:相互独立,互不打扰,因此通信方式较为复杂。 线程:由于共享进程数据段,所以通过全局变量来实现通信,当然访问时需要加锁。 5、控制权 进程:进程没有权利控制其父(子)进程的状态 进程(主线程)的终止能够引起所有子线程的终止 线程:可以销毁,挂起、恢复其它线程,也可以通过销毁主线程来销毁进程 子线程终止不会引起其它线程或者进程的终止,任何一个子线程执行exit()会引起进程中的全部线程同时灭亡。 6、linux系统内核实现 无论进程创建使用的fork()函数,还是线程创建使用的pthread_create()函数最终都是调用系统函数clone(),,只是通过传入不同的flag来设置是否共享父进程的资源。 进程与线程 标签:相关 扩展 不同的 nbsp 处理 复制 描述 用户 静态资源 原文地址:https://www.cnblogs.com/lizijiangmm/p/9690536.html
下一篇:策略模式—Java实现(转)