美文网首页
线程和进程有什么区别

线程和进程有什么区别

作者: yangqi916 | 来源:发表于2017-03-19 21:17 被阅读0次

进程:资源分配的最小单位,线程:程序执行的最小单位
进程有独立的地址空间,线程没有单独的地址空间。
启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段或数据段,而运行一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的时间远远小于启动一个进程所花费的时间。
通信机制:进程之间要进行数据传递只能通过通信的方式,而线程之间是共享数据空间
从函数调用上来说:进程创建使用fork()操作,线程创建使用clone()操作

笔记本上的内容:
进程和线程的主要差别在于它们是不同的操作系统资料管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响,而线程只是一个进程的不同执行路径。线程有自己的堆栈和局部变量,而线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

以前的IE就是多线程的,所以一个Tab挂掉了整个IE就挂掉了,其他的Tab也不能用了,这就是因为一个线程死掉就等于整个进程死掉。chrome是用的多进程来管理多个Tab,所以不会有这样的问题。

一个线程包含以下内容:
一个指向当前被执行指令的指令指针
一个栈
一个寄存器的集合,定义了一部分描述正在执行线程的处理器状态的值
一个私有的数据区。

Linux的进程包含以下几个关键要素:
有一段可执行程序
有专用的系统堆栈空间
内核中有它的控制块(进程控制块),描述进程占用的资源,这样,进程才能接受内核的调度。
具有独立的存储空间

相关文章

  • 2020-01-27 学习笔记——JS运行机制

    线程和进程有什么区别 进程是CPU资源分配的最小单位,线程是CPU调度的最小单位一个进程可以有多个线程进程之间相互...

  • OS 面试题

    Operating System 进程和线程有什么区别Both processes and threads are...

  • 多线程相关面试题及其解答

    Q:什么是线程?什么是进程?线程和进程有什么区别?A:线程:又称"轻量级进程",是操作系统能够进行运算调度的最小单...

  • # iOS基础 # iOS面试题一

    基础部分 1、线程和进程有什么区别 那么,线程和进程与堆、栈之间的关系? 2、线程之间的通信 3、几个线程问题 4...

  • iOS开发——面试题1

    基础部分 1、线程和进程有什么区别 那么,线程和进程与堆、栈之间的关系? 2、线程之间的通信 3、几个线程问题 4...

  • Java中的线程快速了解

    线程 进程和线程有什么区别? 进程是指应用程序在运行时的状态,进程会占用系统的cpu以及内存资源。线程是指进程当中...

  • Android面试一问一答:进程与线程

    进程与线程有什么区别 (单位)进程是资源分配的最小单位;线程是程序执行的最小单位。 (数据和空间)进程有独立的地址...

  • python面试大全-高级

    1,线程 进程 多进程 多线程 协程 2,内存和硬盘有什么区别 3,多线程在web项目中的应用,项目中多线程同时...

  • 全面的多线程面试题含答案(37道面试题)

    多线程面试题: 1.什么是线程,什么是进程,它们有什么区别和联系,一个进程里面是否必须有个线程 (先讲进程) 答案...

  • java多线程基础

    进程与线程 进程是系统中正在运行的一个程序 线程是操作系统能够进行运算调度的最小单位 线程和进程有什么区别 线程是...

网友评论

      本文标题:线程和进程有什么区别

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