06 为什么需要多线程;多线程的优缺点;程序 进程 线程之间的关系;进程和线程之间的区别

这篇具有很好参考价值的文章主要介绍了06 为什么需要多线程;多线程的优缺点;程序 进程 线程之间的关系;进程和线程之间的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么需要多线程

  • CPU、内存、IO之间的性能差异巨大
  • 多核心CPU的发展
  • 线程的本质是增加一个可以执行代码工人

多线程的优点

多个执行流,并行执行。(多个工人,干不一样的活)
06 为什么需要多线程;多线程的优缺点;程序 进程 线程之间的关系;进程和线程之间的区别,Java Thread ThreadPool,java,Java多线程,进程和线程的区别,线程的优缺点
06 为什么需要多线程;多线程的优缺点;程序 进程 线程之间的关系;进程和线程之间的区别,Java Thread ThreadPool,java,Java多线程,进程和线程的区别,线程的优缺点

多线程的缺点

  • 上下文切换慢,切换上下文典型值1us vs 0.3ns/cycle

CPU在执行A任务(A没有执行完)时,切换到任务B,需要保存A的上下文内容,等待CPU切换到执行A任务使用。需要消耗大概1000个时钟周期。

不是说多线程是可以提高效率,怎么又说多线程慢呢。这里慢单纯指的是线程之间切换时消耗的时间和CPU的时钟周期相比慢。针对内存寻址、硬盘寻址是有提升的。

  • 占用资源:每个线程有独立的方法栈。

推荐阅读:我是一个CPU:这个世界慢!死!了!

线程相关概念

程序

程序(Program):程序的为了让计算机执行某些操作或解决某个问题而编写一系列有序的指令集合

软件的目的:提高人们的工作效率,简化工作流程。静态概念。

进程

进程(Process):进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 动态概念。

进程的特点:

  1. 结构性:由程序块CODE、数据块DATA、控制块CPU 组成。
  2. 共享性:同一程序运行在不同的数据集上时构成不同的进程。即多个进程可以共享一个程序。(如一台电脑同时登陆多个QQ)
  3. 动态性:进程是程序在数据集合上的一次执行过程,是动态概念。它有生命周期,由创建、执行、消亡、。
  4. 独立性:每个进程都以各自独立的速度在CPU上执行。
  5. 并发性:进程的并发性能够提高资源的利用率和系统的效率。
  6. 制约性:并发进程之间存在制约关系,也需要相互等待或互通消息,保证程序执行的可再现性和计算结果的唯一性。

进程的状态:就绪态ready、运行态running、阻塞blocked

进程的缺点占用较多的系统资源,浪费内存。

线程

线程(Thread):是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。 可以看成是进程内的多条执行路径。

进程的特点:并发性、共享性、动态性、结构性文章来源地址https://www.toymoban.com/news/detail-633591.html

  • 线程是轻量级的进程
  • 一个进程可以并行多个线程
  • 进程中的线程共享内存
  • 线程间通讯在共享内存中的地址空间上执行,不需要额外的通讯机制,故速度更快。
区别 进程 线程
本质区别 程序是计算机分配资源单位 线程是进程中CPU调度和执行的单位
开销 进程有独立的计算机资源,进程间切换会有较大的开销 线程可以当做轻量级进程,线程间资源共享,切换开销小
内存分配 计算机会给进程分配独立的内存资源 线程使用所在进程的资源
关系 内有线程的进程可以当做单线程;一个进程可以有多个线程 线程是进程的一部分,线程可以当做一个轻量级的进程

到了这里,关于06 为什么需要多线程;多线程的优缺点;程序 进程 线程之间的关系;进程和线程之间的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 期权是什么?期权的优缺点是什么?

    期权是一种合约,有看涨期权和看跌期权两种类型,也就是做多和做空两个方向,走势标的物对应大盘指数,这也是期权与其他金融工具的主要区别之一,可以用于套利,对冲股票和激进下跌的风险,下文介绍期权是什么?期权的优缺点是什么? 一、什么是期权? 期权的标的品

    2024年02月10日
    浏览(45)
  • 什么是数据中心IP,优缺点是什么?

      如果根据拥有者或者说发送地址来分类的话,可以将代理分为三类:数据中心ip,住宅ip,移动ip 本文我们来了解数据中心ip的原理以及他们的优势劣势,才能选择适合自己的代理。 数据中心ip是由数据中心拥有和管理的IP的代理,俗称机房ip,这类是二级公司,并不由运营商提

    2024年02月11日
    浏览(62)
  • 什么是js,以及js优缺点

    JavaScript(简称 JS)是一种轻量级、解释型的编程语言,通常用于在 Web 页面上添加交互性、动态性和动画效果。它是世界上最流行的编程语言之一,也是唯一一种可以在 Web 浏览器中运行的编程语言。 JavaScript 的优点: 灵活性:JavaScript 可以用于多种应用场景,例如创建交互

    2024年02月09日
    浏览(47)
  • 跨境电商独立站到底有什么优缺点?

    无论你在哪个行业,都有优点和缺点,正如人们常说的,人无完人。 那么我们就来谈谈最近比较多人关注的跨境电商独立网站的缺点: 1. 这个过程很麻烦。跨境电商独立站的有效周期需要比较长,因为前期需要投入大量的精力,比如推广和引流。另外,整个网站都需要自己设

    2024年01月16日
    浏览(46)
  • base64图片是什么?原理是什么?优缺点是什么?

    Base64图片是一种将图像数据编码为文本字符串的方法,通常用于将图像嵌入到网页或其他文档中,以减少HTTP请求或实现某些特定的需求。Base64编码的原理是将3个8位的字节转化为4个6位的字节,然后在6位的前面补两个0,形成8位一个字节的形式。如果剩下的字符不足3个字节,

    2024年01月20日
    浏览(51)
  • 开源是什么意思?开源软件优缺点有哪些?

    【导读】开源软件的发展是推动人工智能技术进步的重要因素之一,也是整个软件行业创新的火箭燃料。但还有很多刚入行的小伙伴们不知道开源是什么意思?不知道开源软件优缺点有哪些?常用的开源协议又有哪些?今天我们大家一起来简单了解一下。 开源是什么意思?

    2023年04月08日
    浏览(54)
  • Java 怎样实现代理模式,有什么优缺点

    代理模式是一种常见的设计模式,它可以为其他对象提供一种代理以控制对这个对象的访问。代理对象具有与被代理对象相同的接口,客户端无需知道代理对象和被代理对象的区别。代理模式可以应用于各种不同的场景,例如远程代理、虚拟代理、保护代理等。本文将介绍

    2024年02月02日
    浏览(55)
  • kafka的push、pull分别有什么优缺点

    Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,广泛应用于各大互联网公司的消息系统中。在 Kafka 中,生产者使用 push 模式将消息推送给 Kafka 集群,而消费者则使用 pull 模式从 Kafka 集群中拉取消息。本文对 Kafka 的 push 和 pull 两种模式进行比较,分析其优缺点。 Pu

    2024年02月05日
    浏览(52)
  • Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?

    特性 ActiveMQ RabbitMQ RocketMQ Kafka 开发语言 java erlang java scala 单机吞吐量 万级,比 RocketMQ、Kafka 低一个数量级 同 ActiveMQ 10 万级,支撑高吞吐 10 万级,高吞吐,一般配合大数据类的系统来进行实时数据计算、日志采集等场景 topic 数量对吞吐量的影响 topic 可以达到几百/几千的级

    2024年01月19日
    浏览(46)
  • 什么是FPGA原型验证?FPGA原型验证的优缺点

        什么是FPGA原型验证?    FPGA原型验证是一种基于FPGA的验证技术,是在芯片设计中常用的一种验证方式,它通过将RTL转换成bitfile移植到FPGA中来进行芯片的验证工作,来验证芯片功能和时序的正确性。     为什么要进行原型验证? SOC的功能不断丰富,使软硬件的设计复

    2024年02月07日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包