0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

线程与进程的概念与区别

Dbwd_Imgtec 来源:未知 作者:龚婷 2018-03-16 15:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、线程与进程

1.概念

线程:是程序执行流的最小单元,是系统独立调度和分配CPU(独立运行)的基本单位。

进程:是资源分配的基本单位。一个进程包括多个线程。

2.区别:

1、线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。

2、每个进程都有自己一套独立的资源(数据),供其内的所有线程共享。

3、不论是大小,开销线程要更“轻量级”

4、一个进程内的线程通信比进程之间的通信更快速,有效。(因为共享变量)

二、多线程与多进程

多线程:同一时刻执行多个线程。如,用浏览器一边下载,一边听歌,一边看视频,一边看网页......

多进程:同时执行多个程序。如,同事运行YY,QQ,以及各种浏览器。

三、并发与并行

并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。

并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。

强烈注意:多核,多cup,多机是不同的概念。

补充:

多内核是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。

多核心cpu主要分原生多核和封装多核。

- 原生多核指的是真正意义上的多核,每个核心之间都是完全独立的,都拥有自己的前端总线,不会造成冲突,即使在高负载状况下,每个核心都能保证自己的性能不受太大的影响,通俗的说,原生多核的抗压能力强,但是需要先进的工艺,每扩展一个核心都需要很多的研发时间。

- 封装多核是只把多个核心直接封装在一起,和原生的比起来还是差了很多,而且后者成本比较高,优点在于多核心的发展要比原生快的多。

多个处理机及存储器模块构成的并行处理机被称为多处理机系统(multiprocessor system),简称多处理机。多机系统是将多个VLSI(超大规模集成电路)工艺集成的微处理机芯片结合在一起,由多个处理机并行工作以达到所需的高速度的,因此多机系统实际上是并行处理技术和VLSI技术相结合的产物。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 线程
    +关注

    关注

    0

    文章

    508

    浏览量

    20757
  • 进程
    +关注

    关注

    0

    文章

    208

    浏览量

    14478

原文标题:基础知识:线程,进程,多进程,多线程,并发,并行的区别

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    系统调用和API有什么区别呢?

    们提供的“API”。 通过这些操作系统提供的API,我们可以创建进程、创建线程、读写文件等等,同时我们也根本不需要关心操作系统是如何创建进程线程的等等。 可是,系统调用毕竟名字很独特
    发表于 12-03 06:52

    Linux多线程对比单线程的优势

    在Linux系统中,线程是操作系统能够进行运算调度的最小单位。线程被包含在进程之中,是进程中的实际运行单位。一个进程可以拥有多个
    发表于 12-01 06:11

    飞凌嵌入式ElfBoard-文件I/O的了解探究之竞争冒险

    竞争冒险(Race Condition)指的是在多线程或多进程环境中,多个线程进程对共享资源进行访问和修改时可能导致的不确定性结果或错误行为。竞争冒险通常发生在多个
    发表于 11-26 15:38

    tcpip线程被mu0锁住导致网络线程无法使用怎么解决?

    各位好,我使用rtthread开发STM32F407VGT6芯片,程序有多个线程,每个线程都会创建一个socket,建立tcp连接或者udp连接,现在出现一个问题,程序长时间运行有概率死机,但是没有
    发表于 09-29 06:41

    线程与多处理有何区别

    多处理也称为进程进程是一个在自己的内存空间中运行的独立程序。
    的头像 发表于 09-16 14:21 390次阅读

    线程删除时遇到断言,是什么原因导致的?

    在一个线程中调用线程删除函数删除另外一个线程,这2个线程的优先级是相等的,被删除的线程也是动态创建的,出现了下面的断言内容,一般是什么情况导
    发表于 09-12 06:08

    rtth studio中nano 如何创建动态线程

    有没有大佬,可以说一下为什么静态线程可以正常使用,动态线程怎么也使用不了。 具体需要什么配置才能使用动态线程创建。谢谢!
    发表于 09-11 06:01

    【HZ-T536开发板免费体验】—— linux创建线程

    线程进程 一个进程指的是一个正在执行的应用程序,而线程的功能是执行应用程序中的某个具体任务。线程具有传统
    发表于 09-01 21:31

    UVC+MSC实现中MSC线程未运行的原因?

    我正在尝试使用 EZUSB 运行 UVC + MSC。我有以下内容。但看起来只有 UVC 线程在运行,而 MSC 没有运行。fw 不响应 MSC 命令。我确保 LPM 已被禁用,只是为了检查传感器
    发表于 07-16 07:08

    隔离屏障的概念以及工作电压和测试电压之间的区别

    电源中的电气隔离不仅仅是关乎安全——它更是性能和可靠性的基石。本文将探讨隔离屏障的概念以及工作电压和测试电压之间的区别。它还将讨论标准为何重要?帮助工程师设计出满足当今严苛法规和应用需求的稳健系统。
    的头像 发表于 07-08 15:29 678次阅读

    线程的安全注意事项

    线程安全是指多个线程同时访问或修改共享资源时,能够保证程序的正确性和可靠性。 开发者选择TaskPool或Worker进行多线程开发时,在TaskPool和Worker的工作线程中导
    发表于 06-20 07:49

    Linux进程状态详解

    进程状态是task_struct内的一个整数;进行:进程在调度队列中,进程的状态都是running,阻塞:等待某种设备或者资源就绪。进程是一个队列,设备也是一个队列,当我们读磁盘,读网
    的头像 发表于 04-01 09:46 809次阅读
    Linux<b class='flag-5'>进程</b>状态详解

    进程线程、协程傻傻分不清?一文带你彻底扒光它们的\"底裤\"!

    各位程序员朋友(和假装懂技术的同事):如果你在面试时被问到:\"请用奶茶店类比进程线程和协程\",而你回答:\"进程是老板,线程是员工,协程是兼职...\"
    发表于 03-26 09:27

    请问如何在Python中实现多线程与多进程的协作?

    大家好!我最近在开发一个Python项目时,需要同时处理多个任务,且每个任务需要不同的计算资源。我想通过多线程和多进程的组合来实现并发,但遇到了一些问题。 具体来说,我有两个任务,一个是I/O密集型
    发表于 03-11 06:57

    深入解析Linux程序与进程

    什么是程序 一组计算机能识别和执行的指令,用于指导计算机执行特定任务或解决特定问题。程序通常由代码、数据和资源文件组成,涉及语法、算法和数据结构。为二进制文件 什么是进程 是一个具有独立功能的程序
    的头像 发表于 12-18 11:01 836次阅读
    深入解析Linux程序与<b class='flag-5'>进程</b>