写点什么

精通高并发与内核 | 解析 Linux 内核并发并行

  • 2022 年 9 月 18 日
    上海
  • 本文字数:1156 字

    阅读完需:约 4 分钟

前言

📫作者简介小明java问道之路,专注于研究计算机底层/Java/Liunx 内核,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的架构设计📫 

🏆 InfoQ 签约博主、CSDN 专家博主/Java 领域优质创作者/CSDN 内容合伙人、阿里云专家/签约博主、华为云专家、51CTO 专家/TOP 红人 🏆

🔥如果此文还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主~


本文导读

在网上书上,常常提及并发编程,然后吸引眼球,在前面加了一个高字,然后变成了高并发编程。

让大家觉得,并发编程为基础知识点,什么是刚并发,当在计算机中运行的任务数远大于执行指令的 CPU 个数时,方可称之为高并发。

本文将作为并发编程和 Linux 内核衔接,对线程、进程、接口设计等等基础进行详细解读,同样,请读者进行逻辑分析与知识推理,同时建立点、线、面关联。

本文也将作为 Netty、Tomcat 的线程模型设计架构 Linux 内核的基础,这些都是点,将会由使用他们的框架进行线的整合。

一、计算机中并行并发的推理路线

同样,我们先进行知识推理:

1、计算机三大基础组件,有 CPU、内存、硬盘

2.、CPU 用于控制其他组件,同时执行指令

3、内存用于存放运行的任务的数据+指令(告诉 CPU 要干啥)

4、硬盘用于持久化存放任务的数据+指令(怎么与内存的功能一样?是的,必须一样)

5、硬盘与内存的作用相同,理论上我们只需要 CPU +内存/硬盘即可,那么为啥偏偏需要这两者?是由于硬盘用于持久化,硬盘的数据并不会因为掉电而丢失,这就好理解了,所以硬盘必须。那么继续来看内存的作用,硬盘由于需要持久化,所以设计和实现必然速度远远慢于 CPU ,那么为了弥补这一缺陷,引入了速度远快于硬盘的内存,这时又由于内存因为速度设计,所以不得不放弃持久化的功能,所以两者互相弥补,增加运行速度。读者有没有发现内存是硬盘中的数据(程序的指令和数据)缓存。

6、这时,我们可以很容易的推理:在系统中集成多个 CPU ,大容量内存,同时可以将这些任务从硬盘中放到内存,然后多个 CPU 分别执行它们即可,这时将会极大增加计算机性能


那么,此时我们可以根据以上结论对并发与并行进行定义:

二、并行

当内存中的任务数正好等于 CPU 的核心数,那么理想情况下所有 CPU 都各自获取到了要执行的任务,那么,在同一时间将会有 CPU 核心数个数的任务在执行,这称之为并行

三、并发

当内存中的任务数正好大于 CPU 的核心数,那么理想情况下所有 CPU 都各自获取到了要执行的任务,这时将会有多余的任务得不到 CPU 执行,而 CPU 将会对这些多余的任务和当前执行的任务进行切换调度来分时(1S= 1000ms,500 ms 执行 A,500 ms 执行 B ,这时将一段时间切割给不同任务执行,这称之为分时执行)执行它们,这称之为并发

总结

本文将作为并发编程和 Linux 内核衔接,对线程、进程、接口设计等等基础进行详细解读,同样,请读者进行逻辑分析与知识推理,同时建立点、线、面关联。

发布于: 刚刚阅读数: 3
用户头像

InfoQ签约作者/技术专家/博客专家 2020.03.20 加入

🏆InfoQ签约作者、CSDN专家博主/Java领域优质创作者、阿里云专家/签约博主、华为云专家、51CTO专家/TOP红人 📫就职某大型金融互联网公司高级工程师 👍专注于研究Liunx内核、Java、源码、架构、设计模式、算法

评论

发布
暂无评论
精通高并发与内核 | 解析Linux内核并发并行_并发编程_小明Java问道之路_InfoQ写作社区