当前位置: 首页 > news >正文

【Java基础】进程与线程,并发与并行,CPU单核与多核

目录

  • 1 进程与线程
  • 2 CPU单核与多核

1 进程与线程

  • 进程与线程基本单位的对象不同

    • 进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位
    • 线程是CPU调度和分配的基本单位
      CPU看不到进程,只能看到待分配的一些线程

  • 并发与并行

    • 并发:同一时间段内运行多个
    • 并行:同一时刻同时运行多个

2 CPU单核与多核

CPU的一个核在同一时刻只能执行一个线程,但是由于CPU可以做到调度线程的快速切换,因此在同一时间段内达到的效果是 可以并发运行不同的线程

  • CPU多核: 可以使用CPU的多个核。当一个核被一个线程阻塞时,其他核还能继续运行,因此:

    在任务中的多个线程没有资源竞争的情况下,任务执行的效率会有显著性的提高,约等于(单核时执行时间/CPU 核心数)

    ——《JavaGuide》

  • CPU单核: 只能使用CPU的一个核。由于一个核同时只能执行一个线程,因此当运行一个线程时间较长造成阻塞时,其他的线程就无法运行

CPU的单核使用多线程一定会提高效率吗

  • 结论: 不一定
  • 解释:
    1. 单核CPU通过不断调用不同的线程来试图提高效率,但频繁的线程切换反而会增加系统的开销,降低效率。
    2. 因此是否会提高效率得看线程的类型线程一般分为CPU密集型和IO密集型,CPU密集型需要占用大量的CPU资源,来处理复杂的计算,如果单核使用多线程并发来处理CPU密集型的任务,反而会降低效率;IO密集型主要处理读写操作,CPU占用不多,有大量的时间用于等待IO设备的响应,如果单核使用多线程并发来处理IO密集型的任务,可以有效利用等待IO的空闲时间,会提高效率
http://www.lryc.cn/news/278686.html

相关文章:

  • git修改最新提交(commit)信息
  • 想寻找Axure的替代品?我们已经试用了10+款设计工具,来看看吧!
  • 报文大小限制、请求体类型总结
  • rknn加载onnx时报错 GLIBC=2.29 no found librknnc.so
  • ASP .net core微服务实战(杨中科)
  • 使用命令行方式搭建uni-app + Vue3 + Typescript + Pinia + Vite + Tailwind CSS + uv-ui开发脚手架
  • VUE+bpmn.js实现工作流
  • 微信小程序Burp抓包
  • 基础篇_面向对象(什么是对象,对象演化,继承,多态,封装,接口,Service,核心类库,异常处理)
  • 【一、测试基础】Java基础语法
  • 社交距离 - 华为OD统一考试
  • Odrive 学习系列一:vscode 编译Odrive
  • Pandas实战100例 | 案例 21: 条件运算
  • Unity组件开发--长连接webSocket
  • 书客、柏曼、松下护眼台灯哪款更靠谱?实测核心数据对比PK!
  • MQTT协议
  • Unity编辑器扩展(外挂)
  • oracle 19c容器数据库data dump数据泵传输数据(2)---11g导19c
  • Java-网络爬虫(二)
  • 【android】rk3588-android-bt
  • 如何在 Microsoft Edge 浏览器中启用自动刷新
  • Redis之集群方案比较
  • WPF 布局
  • #Uniapp:uni-app中vue2生命周期--11个
  • pytorch 分布式 Node/Worker/Rank等基础概念
  • 《动手学深度学习》学习笔记 第8章 循环神经网络
  • 腾讯实验平台基于 StarRocks 构建湖仓底座
  • 【基础工具篇使用】ADB 的安装和使用
  • 数字图像处理练习题
  • 开关电源PFC电路原理详解及matlab仿真