美文网首页
对进程和线程的一点理解

对进程和线程的一点理解

作者: is_E | 来源:发表于2018-12-28 15:18 被阅读0次

记录一下个人对进程和线程之间的关系的理解,可能不对,望指正。

一、进程

    以生产线为例,程序是整个车间的老大,车间不会是个空壳,他至少拥有一条生产线,而进程则是承包了某一条生产线的主管(该生产线上他是老大且需要对该生产线负责),可以自由走动并且给手下的员工安排各种任务(谁谁谁加班,谁谁谁拿奖金都是他来说了算的)。

    所以一个程序至少拥有一个进程、进程是一个资源分配的独立的基本单位。

    不过这个主管是一个懒人,而生产线上可能时不时就会有些事情得去解决,但是他从来不会自己亲自动手去解决任何事情,所以每个主管身边都配了一个小跟班去代他做事。

    所以进程至少拥有一个线程,否则该进程无法被调度执行。

二、线程

    线程是生产线上的小职员,主管(进程)会根据手头上的任务大小来招募(生成)或者遣散(销毁)线程去执行大任务重分流出来的小任务。线程则是完成任务的主力军(进程不亲自做任务)。

    所以线程是系统调度和分配的最小单位

    每个线程借助主管给的工具(资源)和主管给的地盘(地址空间)去完成主管分配的小任务,这些工具不是线程的而是属于进程的,而且这些工具是进程拿出来作为他们生产线上的共享资源的。虽然线程并不拥有这些,不过他也不是一无所有,线程拥有自己的工位(栈空间)和工号(执行序列)

    所以进程是被分给并拥有资源的基本单元。同一进程内的多个线程共享该进程的资源,不过线程仅仅能使用这些资源而不拥有它们。但它拥有自己的栈空间和独立的执行序列。

    线程在眼看自己的任务完成不了的时候,他也可以呼叫小伙伴(另一个线程)来帮助自己同时完成这个任务,在自己可以解决了的时候送走小伙伴。

    所以一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.

    

三、联系与区别

    一条生产线是被进程独立管理着的(拥有独立的地址空间),所以进程需要对该生产线负责,如果生产线上的某个线程因为任务压力什么的导致该线程崩溃了(线程没有独立的地址空间,只是一个进程中的不同执行路径),其所属的进程也会崩溃。

    而由于进程独立承包了这条生产线,所以该进程崩溃并不会引起该车间内的其他进程产生崩溃。

    虽然多进程比多线程程序要健壮一些,但是进程之间的切换产生的资源消耗较大,所以具体使用还需要好好斟酌。

可能不是很形象也有疏漏,望小伙伴们指点补充^-^

相关文章

  • 对进程和线程的一点理解

    记录一下个人对进程和线程之间的关系的理解,可能不对,望指正。 一、进程 以生产线为例,程序是整个车间的老大,车间不...

  • 分享 10 道 Nodejs 进程相关面试题

    通过对以下 10 个面试题的分享,助您更好的理解 Node.js 的进程和线程相关知识 快速导航 什么是进程和线程...

  • 浏览器相关原理

    线程和进程 进程和线程的概念可以这样理解: 进程是一个工厂,工厂有它的独立资源--工厂之间相互独立--线程是工厂中...

  • Java 多线程

    一、概述 理解多线程先要理解线程,理解线程先要理解进程。 1. 进程 一个正在执行的程序。 每个进程的执行都有一个...

  • 进程和线程的理解

    程序 定义:指令和数据的有序集合。是静态的 进程 定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行...

  • 进程和线程的理解

    进程:对于操作系统而言,进程是整个现代操作系统的核心根本,操作系统是以进程为单位执行任务。 线程:随着技术的发展,...

  • 多线程1,线程基础知识

    多线程基础知识 目录介绍 1.进程概述及多进程的意义[理解]1.1 线程和进程1.2 进程概述1.3 多进程的意义...

  • 多线程总结

    多线程 理解程序、进程、线程的概念 程序可以理解为静态的代码进程可以理解为执行中的程序。线程可以理解为进程的进一步...

  • iOS 多线程之基础

    在开始之前,先理解以下几点一、进程和线程的区别和联系:1、地址资源:进程有自己的内存地址,进程内的线程可以共享进程...

  • 线程和进程概念

    线程和进程 进程 线程 线程和进程的区别

网友评论

      本文标题:对进程和线程的一点理解

      本文链接:https://www.haomeiwen.com/subject/zedgdftx.html