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

    文章

    504

    浏览量

    19674
  • 进程
    +关注

    关注

    0

    文章

    203

    浏览量

    13958

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

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

收藏 人收藏

    评论

    相关推荐

    程序和进程区别

    比如: 开发写的代码我们称为程序,那么将开发的代码运行起来。我们称为进程
    的头像 发表于 11-25 16:03 198次阅读
    程序和<b class='flag-5'>进程</b>的<b class='flag-5'>区别</b>

    socket 多线程编程实现方法

    在现代网络编程中,多线程技术被广泛应用于提高服务器的并发处理能力。Socket编程是网络通信的基础,而将多线程技术应用于Socket编程,可以显著提升服务器的性能。 多线程编程的基本概念
    的头像 发表于 11-12 14:16 332次阅读

    一文搞懂Linux进程的睡眠和唤醒

    机制 1)信号(Signal): 进程可以通过接受特定信号被唤醒。 2)条件变量(Condition Variable): 多线程编程中用于同步多个线程的工具,可以让一个线程在某些
    发表于 11-04 15:15

    Python中多线程和多进程区别

    Python作为一种高级编程语言,提供了多种并发编程的方式,其中多线程与多进程是最常见的两种方式之一。在本文中,我们将探讨Python中多线程与多进程
    的头像 发表于 10-23 11:48 383次阅读
    Python中多<b class='flag-5'>线程</b>和多<b class='flag-5'>进程</b>的<b class='flag-5'>区别</b>

    CPU线程和程序线程区别

    CPU的线程与程序的线程概念、作用、实现方式以及性能影响等方面存在显著差异。以下是对两者区别的详细阐述,旨在深入探讨这一技术话题。
    的头像 发表于 09-02 11:18 971次阅读

    一句话让你理解线程进程

    今天给大家分享一下线程进程,主要包含以下几部分内容:一句话说明线程进程操作系统为什么需要进程为什么要引入
    的头像 发表于 06-04 08:04 1148次阅读
    一句话让你理解<b class='flag-5'>线程</b>和<b class='flag-5'>进程</b>

    fpga与asic在概念上有什么区别

    FPGA(现场可编程门阵列)和ASIC(应用特定集成电路)在概念上存在明显的区别
    的头像 发表于 03-27 14:12 907次阅读

    python中5种线程锁盘点

    线程安全是多线程或多进程编程中的一个概念,在拥有共享数据的多条线程并行执行的程序中,线程安全的代
    发表于 03-07 11:08 1572次阅读
    python中5种<b class='flag-5'>线程</b>锁盘点

    基于RTOS的应用进程中的典型线程

    RTOS中的关键因素是最小的中断延迟和最小的线程切换延迟。RTOS的价值在于它的响应速度或可预测性,而不是它在给定时间段内可以执行的工作量。
    发表于 03-05 09:32 581次阅读
    基于RTOS的应用<b class='flag-5'>进程</b>中的典型<b class='flag-5'>线程</b>

    嵌入式系统中的线程进程与任务概念区别

    每个线程与主程序共用地址空间,受限于2GB地址空间; 2)线程之间的同步和加锁控制比较麻烦;一个线程的崩溃可能影响到整个程序的稳定性
    发表于 03-04 15:03 1318次阅读
    嵌入式系统中的<b class='flag-5'>线程</b>、<b class='flag-5'>进程</b>与任务<b class='flag-5'>概念</b>与<b class='flag-5'>区别</b>

    什么是动态线程池?动态线程池的简单实现思路

    因此,动态可监控线程池一种针对以上痛点开发的线程池管理工具。主要可实现功能有:提供对 Spring 应用内线程池实例的全局管控、应用运行时动态变更线程池参数以及
    的头像 发表于 02-28 10:42 627次阅读

    线程是什么的基本单位 进程线程的本质区别

    的代码、数据以及用于执行这些代码的上下文信息。一个进程可以由一个或多个线程组成,从而并发执行多个任务。 本质区别: 资源拥有方式:进程是资源分配的基本单位,每个
    的头像 发表于 02-02 16:30 917次阅读

    线程进程、多线程、多进程和多任务之间有何关系?

    进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。
    的头像 发表于 01-11 13:39 356次阅读
    <b class='flag-5'>线程</b>、<b class='flag-5'>进程</b>、多<b class='flag-5'>线程</b>、多<b class='flag-5'>进程</b>和多任务之间有何关系?

    mcu线程进程区别是什么

    MCU线程进程是嵌入式系统中常见的并行执行的概念,它们之间有许多区别,包括线程进程的定义、资
    的头像 发表于 01-04 10:45 740次阅读

    你还是分不清多进程和多线程吗?一文搞懂!

    你还是分不清多进程和多线程吗?一文搞懂! 多进程和多线程是并发编程中常见的两个概念,它们都可以用于提高程序的性能和效率。但是它们的实现方式和
    的头像 发表于 12-19 16:07 558次阅读