我是靠谱客的博主 可爱花瓣,最近开发中收集的这篇文章主要介绍Java知识梳理——单核多线程与多核多线程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

单核多线程与多核多线程

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

线程和进程是什么

线程是CPU调度和分配的基本单位(可以理解为CPU只能看到线程)
进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位


单核多线程

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

多线程上下文切换

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

  • 按照优先级调度
  • 按照FIFO调度
  • 按照时间片调度等等

多核多线程

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


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

最后

以上就是可爱花瓣为你收集整理的Java知识梳理——单核多线程与多核多线程的全部内容,希望文章能够帮你解决Java知识梳理——单核多线程与多核多线程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部