在Linux系统中,进行并行计算编程,经常会将进程(Process)和线程(Thread)混淆,下面我们以表格的形式对二者进行对比,帮助大家能更清晰的理解二者之间的区别。

Process和Thread的区别

进程(Process)

线程(Thread)

(1) 系统(OS)分配资源和调度运行的基本单位;

(1) 进程(Process)中执行运算的基本单位;

(2) 独立的虚拟地址和处理器调度,进程之间不可通信;

(2) 共享的内存和指令,线程之间可直接通信,但有独立的栈和指令指针(PC)等以及独立的执行序列;

(3) 进程是系统中的并发执行的单位;

(3) 线程是进程中的并发执行的单位;

(4) 在分布式存储设备或共享存储设备上执行并行计算;

(4) 仅在共享存储设备上执行并行计算;

(5) 开销大,复制父进程的内存等资源;

(5) 开销小,与父进程共享 内存等资源

(6) 基于Process的并行:

(Message Passing Interface,  MPI)

(6) 基于Thread 的并行:

(Open Multi-Processing,  OpenMP)

(POSIX Thread,  Pthread)

进程(Process)和线程(Thread)的区别相关推荐

  1. 进程(process)和线程(thread)

    进程(process)和线程(thread) 来源:阮一峰 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握. 其实做一个很好的类比,就可以把它们解释地清 ...

  2. 进程process和线程thread应用和区别——Python学习笔记12

    Subprocess subprocess主要是在Python中执行外部的程序和命令.在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序. subpr ...

  3. 进程process与线程thread

    进程:process是一个外理过程,即然是外理过程,那么它就有生命周期,从进程的启动,运行,直到运行结束,进程终止.进程是程序的执行实例,即运行中的程序,同时也是程序的一个副本,程序是放置于磁盘的,而 ...

  4. Python 进程 Process 与线程 threading 区别 - Python零基础入门教程

    目录 一.Python 线程 threading 创建 二.Python 进程 Process 创建 三.Python 进程 Process 和线程 threading 区别 四.Python 进程 ...

  5. 进程切换与线程切换的区别?

    注意这个题目问的是进程切换与线程切换的区别,不是进程与线程的区别.当然这里的线程指的是同一个进程中的线程. 这个问题能很好的考察面试者对进程和线程的理解深度,有比较高的区分度. 要想正确回答这个问题, ...

  6. .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调、APM、EAP、TPL、aysnc、await

    windows系统是一个多线程的操作系统.一个程序至少有一个进程,一个进程至少有一个线程.进程是线程的容器,一个C#客户端程序开始于一个单独的线程,CLR(公共语言运行库)为该进程创建了一个线程,该线 ...

  7. Python多进程(process)和多线程(thread)的区别

    目录 一.线程与进程 1.基本概念 2.区别 二.多进程与多线程 1.多进程 (1)Python的多进程编程与multiprocess模块 (2)利用multiprocess模块的Pool类创建多进程 ...

  8. Python 进程 Process 模块 - Python零基础入门教程

    目录 一.Python 进程 Process 简介 二.Python 进程 Process 模块 三.Python 进程 Process 函数介绍 四.Python 进程 Process 使用 五.P ...

  9. 线程(Thread)的学习笔记

    本文是对b站狂神说java多线程的学习总结,附上b站链接https://www.bilibili.com/video/BV1V4411p7EF?spm_id_from=333.999.0.0& ...

  10. 一个进程(Process)最多可以生成多少个线程(Thread)

    1.进程中创建线程的限制 默认情况下,一个线程的栈要预留1M的内存空间,而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程,但是内存当然不可能完全拿来作线程的栈,所以实际 ...

最新文章

  1. 超强整理!PCB设计之电流与线宽的关系
  2. Bootstrap日期插件之Datetimepicker修改默认语言(附带源码)
  3. java httpclient 关闭_java中使用httpclient如何关闭debug日志
  4. Ubuntu 安装Jdk(apt-get)
  5. mysql嵌套select_mysql中如何嵌套使用insert和select
  6. NLP高阶实战必读:一文走遍完整自然语言处理流程 文章
  7. uva 12230 - Crossing Rivers(概率)
  8. linux 源代码gcc安装,linux下源码安装GCC
  9. 图像算法之3D人脸识别技术原理概述
  10. 【Unity】用2D流体实现在水中添加染料的效果
  11. 科研工作者要会的技能----查找顶刊会议或期刊的方法
  12. Ubuntu环境下安装QT5
  13. OpenNLP进行自然语言处理
  14. Mac安装指定版本的node
  15. pcmcia oracle vm vitualbox 虚拟机,virtualbox中调整虚拟机的硬盘大小 与 CentOS卡在进度条启动缓慢进不去解决办法...
  16. [Mugeda HTML5技术教程之2] Mugeda HTML5富媒体平台简介
  17. 在html中什么属性能够实现表格跨列,在HTML中,以下( )能够实现表格跨列。...
  18. 写给《中国品牌日》:梦想不远 未来可期 为每一个农业品牌人鼓掌
  19. Smallpdf 轻松玩转PDF。我们爱它。
  20. 为王菲写的第四首歌《织女星》

热门文章

  1. 探讨Netty获取并检查Websocket握手请求的两种方式
  2. Java中的回调机制,这篇给你整的明明白白的
  3. 虚拟化+云服务器,虚拟化+云服务器
  4. 新买的服务器怎么安装Linux,买了新服务器,如何从头开始配置?Ubuntu系统安装+新建用户名+挂...
  5. 最优化设置mysql的max_connections
  6. Docker加入白名单
  7. java基础面试题之:普通类和抽象类有哪些区别?
  8. [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作
  9. Vue框架引入JS库的正确姿势
  10. spirng整合rmi