线程和进程区别

作者: jsbintask | 来源:发表于2019-04-25 20:50 被阅读15次

线程和进程区别

  1. 进程是资源分配的最小单位,线程是程序执行的最小单位。
  2. 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。
  3. 线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。

进程间通信方式

  1. 管道:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
  2. 有名管道: 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
  3. 信号量: 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
  4. 消息队列: 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
  5. 信号: 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
  6. 共享内存:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
  7. 套接字: 套解字也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。

相关文章

  • 线程和进程概念

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

  • java面试3

    1. 进程与线程的区别? 进程和线程的关系: 进程与线程的区别: 2.struts2和springMVC的区别? ...

  • 剑指offer:告诉你哪些不为人知的Java 多线程与并发整理

    一、进程和线程的区别 1. 进程和线程的由来: 2. 进程和线程的区别 进程是资源分配的最小单位,线程是CPU调度...

  • 面试题_ios(四)

    1.进程和线程的区别和联系 Progress和Thread,进程和线程是操作系统里的基本概念线程与进程的区别:线程...

  • 线程

    线程和进程 进程 线程 线程和进程的区别 线程的好处和坏处 创建线程的方式一 线程中常用的方法 代码实例 创建线程...

  • 多线程

    一、线程和进程的关系和区别 1.1 线程和进程的定义 线程(Thread):也被称为 轻量级进程(Lightwei...

  • 操作系统学习笔记

    进程和线程 进程和线程的区别 线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Pro...

  • 进程和线程的区别及通信方式(TCP三次握手四次挥手)

    1、进程和线程的区别: 答:线程是指进程内的一个执行单元,也是进程内的可调度实体。与进程的区别: (1)调度:线程...

  • 线程、多线程和线程池 面试题

    开启线程的三种方式? 线程和进程的区别? 为什么要有线程,而不是仅仅用进程? run()和start()方法区别 ...

  • 1.多线程基础(一)基础中基础

    1.前言 进程,线程和任务的基本概念的概括图 进程: 线程: 线程的串行: 线程和进程的区别: 多线程的优缺点: ...

网友评论

    本文标题:线程和进程区别

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