专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

什么是多线程(多线程的原理作用优缺点)

来源:小嗨整编  作者:小嗨  发布时间:2022-10-28 11:23
摘要:什么是多线程,多线程的原理作用优缺点介绍1、什么是多线程多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这...

什么是多线程,多线程的原理作用优缺点介绍

1、什么是多线程

多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包阔对称处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。

什么是多线程(多线程的原理作用优缺点)

2、多线程原理

多线程就是把操作系统中的这种并发执行机制原理运用在一个程序中,把一个程序划分为若干个子任务,多个子任务并发执行,每一个任务就是一个线程。

实现多线程是采用一种并发执行机制。

3、多线程优势

1、方便的通信和数据交换

2、更高效地利用CPU

4、线程与进程的区别

线程 是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行. 一个进程最少 有一个线程,线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分成若干个线程。

进程 是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间

5、线程与多线程的区别

线程是系统对代码的执行进程,如果将系统当做一个员工,被安排执行某个任务的时候,他不会对任何其他的任务作出响应。只有当这个任务执行完毕,才可以重新给他分配任务。一个程序都有一个主线程,负责执行程序必要的任务 。


当我们处理一个消耗大的任务(如上传或下载图片),如果让主线程执行这个任务,它会等到动作完成,才继续后面的代码。在这段时间之内,主线程处于“忙碌”状态,也就是无法执行任何其他功能。体现在界面上就是,用户的界面完全“卡死” 。

多线程是指,将原本线性执行的任务分开成若干个子任务同步执行,这样做的优点是防止线程“堵塞”,增强用户体验和程序的效率。缺点是代码的复杂程度会大大提高,而且对于硬件的要求也相应地提高。

什么是多线程(多线程的原理作用优缺点)

6、线程调度的分类

(1)分时调度

所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。

(2)抢占式调度 (常用)

优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性), Java使用的为CPU使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核新而言,某个时刻, 只能执行一个线程,而 CPU的在多个线程间切换速度相对我们的感觉要快,看上去就是 在同一时 刻运行。 其实,多线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的 使用率更高。

7、同步与异步

同步:排队执行 , 效率低但是安全.

异步:同时执行 , 效率高但是数据不安全

8、并发与并行

并发:指两个或多个事件在同一个时间段内发生。

并行:指两个或多个事件在同一时刻发生(同时发生)。

9、为什么要使用线程池

如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低 系统的效率,因为频繁创建线程和销毁线程需要时间. 线程池就是一个容纳多个线程的容 器,池中的线程可以反复使用,省去了频繁创建线程对象的操作,节省了大量的时间和资源。

10、线程池的好处

降低资源消耗。

提高响应速度。

提高线程的可管理性。

11、线程池的分类

1. 缓存线程池:长度无限制

执行流程 :

判断线程池是否存在空闲线程

存在则使用

不存在,则创建线程 并放入线程池, 然后使用

2. 定长线程池 : 长度是指定的数值

执行流程 :

判断线程池是否存在空闲线程

存在则使用

不存在空闲线程,且线程池未满的情况下,则创建线程 并放入线程池, 然后使用

不存在空闲线程,且线程池已满的情况下,则等待线程池存在空闲线程

12、多线程的意义

无论是过去还是现在,世界上大多数计算机仍然采用的是冯·诺依曼结构,这种结构的特点就是顺序处理,一个处理器在同个时刻只能处理一件事情。 Windows 95/NT采用一种全新的任务调度策略,它把一个进程划分为多个线程,每个线程轮流占用CPU的运算时间,操作系统不断地把线程挂起、唤醒、再挂起、再唤程,如此反复,由于现在CPU的速度比较快,给人的感觉是多个线程在同时执行,就好像有多个CPU存在于计算机中一样。


本文地址:网络百科频道 https://www.eeeoo.cn/wangluo/700469.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!


网络百科
小编:小嗨整编
相关文章相关阅读
  • win10电脑如何关闭超线程

    win10电脑如何关闭超线程

    1、在电脑上打开开始菜单,找到系统配置选项,并点击打开。2、在跳转的界面中,点击上方的引导选项。3、在打开的引导界面中,找到高级选项,并点击打开。4、在打开的高级选项中,找到处理器个数,并选择为一个。5、设置完成后,点击下方的确定选项即可完...

  • 进程和线程是什么

    进程和线程是什么

    进程是资源分配的基本单位,它是程序执行时的一个实例,在程序运行时创建;线程是程序执行的最小单位,是进程的一个执行流,一个线程由多个线程组成的。什么是进程进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会...

  • 进程和线程是什么

    进程和线程是什么

    进程是资源分配的基本单位,它是程序执行时的一个实例,在程序运行时创建;线程是程序执行的最小单位,是进程的一个执行流,一个线程由多个线程组成的。什么是进程进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会...

  • 核心数和线程数是什么意思

    核心数和线程数是什么意思

    核心数指的是cpu内核数量,表示一个cpu由多少个核心组成;cpu核心是cpu的重要组成部件,在内核频率、缓存大小等条件相同的情况下,cpu核心数量越多,cpu的整体性能越强。线程数是一种逻辑的概念,简单地说,就是模拟出的cpu核心数。cp...

  • 多线程是什么意思

    多线程是什么意思

    线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位,而多线程就是指从软件或者硬件上实现多个线程并发执行的技术,具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。线程是...

  • PHP中的多线程

    PHP中的多线程

    在php编程中,如果我们需要执行多个任务或同时处理多个请求,多线程是一种非常重要的编程技术。多线程可以实现多个线程同时运行,提高程序效率,提升用户体验。一、PHP多线程介绍PHP多线程是指同时执行两个或多个线程的程序,每个线程都是一个独立的...

  • 线程和进程的区别是什么

    线程和进程的区别是什么

    线程和进程的区别:1、线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小;2、进程相对独立,需要通过显式机制进行通信,切换开销较大;而线程的管理更为灵活,进程的管理相对复杂。线程和进程是操作系统中...

  • superpi,superpi支持多核和多线程吗一般的多核cpu跑superpi用到...

    superpi,superpi支持多核和多线程吗一般的多核cpu跑superpi用到了多核还

    1,superpi支持多核和多线程吗一般的多核cpu跑superpi用到了多核还superpi只支持单线程~就是只用一个核心来计算多核无优势~CPU频率越高就算的越快你好!这个是单核的。如果要多线程,请跑wPrime和Fritz仅...

  • 周排行
  • 月排行
  • 年排行

精彩推荐