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

本文探讨了进程与线程的区别,指出CPU单核与多核在并发中的作用。单核情况下,多线程可能因频繁切换导致效率降低,特别对于CPU密集型任务。而对IO密集型任务,多线程可提高效率。
摘要由CSDN通过智能技术生成

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的空闲时间,会提高效率
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值