java单核多线程与多核多线程_详解单核多线程与多核多线程的区别

单核多线程与多核多线程

总有同学对于单核多线程和多核多线程有点误区,因为会听到一些同学问为什么单核能处理多线程,下面会通俗说明下。

线程和进程是什么

线程是CPU调度和分配的基本单位(可以理解为CPU只能看到线程)

进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位

单核多线程

单核多线程指的是单核CPU轮流执行多个线程,通过给每个线程分配CPU时间片来实现,只是因为这个时间片非常短(几十毫秒),所以在用户角度上感觉是多个线程同时执行。

多线程上下文切换

在这里也引出多线程上下文切换,也就是CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。并且在切换前会保存上一个任务的状态,当切换回上一个任务时可以继续加载该任务的状态,从任务保存到再加载的过程就是一次上下文切换。

例如:我们在看一篇纯英文的文档的时候,由于经常会有单词不认识,我们需要在不认识的地方打个记号,然后去翻英汉词典,等把这个单词搞清楚后再返回去看那篇英文文档,从标记的地方继续往下看(这就是上下文切换的例子)。不过在看到一半然后去看别的文章,会影响到效率,多线程也一样,会影响到多线程执行速度。

多核多线程

多核多线程,可以把多线程分配给不同的核心处理,其他的线程依旧等待,相当于多个线程并行的在执行,而单核多线程只能是并发。

总结

单CPU中进程只能是并发,多CPU计算机中进程可以并行。

单CPU单核中线程只能并发,单CPU多核中线程可以并行。

无论是并发还是并行,使用者来看,看到的是多进程,多线程。

浏览量:

724

+1

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值