美文网首页
并行 并发 多核下线程数量选择

并行 并发 多核下线程数量选择

作者: 陆遥远 | 来源:发表于2019-11-21 16:51 被阅读0次

并发

  • 多个线程在单个核心运行,同一时间一个线程运行,系统不停切换线程,看起来像同时运行,实际上是线程不停切换
  • 调度器切换CPU给不同进程使用的速度非常快,于是在使用者看来程序是在同时运行,这就是并发,而实际上CPU在同一时刻只在运行一个进程

并行

  • 每个线程分配给独立的核心,线程同时运行。
  • 如果这个CPU是多核的话,那么进程中的不同线程可以使用不同核心,真正的并行出现了

多核下线程数量选择

计算密集型

  • 程序主要为复杂的逻辑判断和复杂的运算。

  • cpu的利用率高,不用开太多的线程,开太多线程反而会因为线程切换时切换上下文而浪费资源

IO密集型

  • 程序主要为IO操作,比如磁盘IO(读取文件)和网络IO(网络请求)。

  • 因为IO操作会阻塞线程,cpu利用率不高,可以开多点线程,阻塞时可以切换到其他就绪线程,提高cpu利用率。

  • 一个cpu分成多个内核,这是物理的分隔

  • 在单CPU计算机中,有一个资源是无法被多个程序并行使用的:CPU

进程与线程之间的联系

  • 两者都是多任务编程方式,都能够使用计算机的多核资源
  • 进程的创建删除消耗的计算机资源比线程要多
  • 进程空间独立,数据相互不干扰,有专门的IPC,线程使用全局变量进程通信
  • 一个进程可以创建多个线程分支,两者之间存在包含关系
  • 多个线程公用进程的资源,在资源操作时往往需要同步互斥
  • 进程线程在系统中都有自己特有的属性,ID,代码段,栈区等资源

相关文章

  • 并行 并发 多核下线程数量选择

    并发 多个线程在单个核心运行,同一时间一个线程运行,系统不停切换线程,看起来像同时运行,实际上是线程不停切换 调度...

  • go 的并发机制

    并发与并行的概念 ① 多线程程序在单核cpu上运行就是并发;② 多线程程序在多核cpu上运行就是并行; gorou...

  • iOS - Multi-Thread

    概念篇 进程 线程 多线程 单核多线程 & 多核多线程 并行 & 并发 同步 & 异步 队列 队列 & 任务 的执...

  • Python多线程

    多线程基础概念 并行与并发 并行:同时处理多个任务,必须在多核环境下 一段时间内同时处理多个任务,单核也可以并发 ...

  • jvm总结

    讲jvm之前先明确下串行、并行、并发的区别: 并行(Parallel): 必须多核支持 并发 (Concurren...

  • [OS] 进程管理 内存管理

    并发和并行 高并发: 提高了系统的利用率 并行: 多核计算机同时运行多个进程或线程, 提高了性能 进程和线程 进程...

  • 多线程的 并行 和 并发 有什么区别?

    多线程的 并行 和 并发 有什么区别? 并行:充分利用计算机的多核,在多个线程上同步进行 并发:在一条线程上通过快...

  • java面试题(三)

    Java 多线程模块 1、并行和并发有什么区别? 并行:多个处理器或多核处理器同时处理多个任务。 并发:多个任务在...

  • 关于并行和并发的小理解

    如果是单核,就是并发 如果是多核执行,是并行 但是GC线程,不管是单核还是多核,都是串行的,也就是并发的.GC的时...

  • 并发

    并发的解释早期的单核用时间片调度模拟并发(宏观并行,微观串行)。目前的多核CPU加上超线程技术已实现真正的并行,所...

网友评论

      本文标题:并行 并发 多核下线程数量选择

      本文链接:https://www.haomeiwen.com/subject/vlvtwctx.html