我们聊聊单核可以实现多线程吗?

不同软件对硬件的依赖程度区别很大,依赖最强的就是“固件”,它随硬件的生产一起被烧录在硬件上,一度只能读不能写,后面即使可以改动也要用“非常”手段,这种软件显然受硬件影响最大,典型的比如BIOS系统。

不同软件对硬件的依赖程度区别很大,依赖最强的就是“固件”,它随硬件的生产一起被烧录在硬件上,一度只能读不能写,后面即使可以改动也要用“非常”手段,这种软件显然受硬件影响最大,典型的比如BIOS系统

首先答案是“可以”,接下来就说说为啥可以。解释此问题可以从两个方面思考,一个是计算机如此复杂和强大的根本原因是什么?一个是硬件与软件的依赖关系是怎样的?明确了这两个问题的答案后,再回头看本问题,就会发现单核能够实现多线程是多么理所当然的事。

一、计算机如此复杂和强大的原因

了解过计算机和操作系统历史的人应该很快就能发现,计算机之所以会变得如此复杂和强大完全是“单核多任务”的实现与不断扩展导致的。计算机就是因为要实现“单核多任务”而变得复杂的,同时也是因为实现了“单核多任务”变得强大,然后在对“单核多任务”的不断扩展中变得更加强大。比如操作系统在最开始就只是个简单的“批处理系统”,本质就是个多任务管理工具,且是非并发的。

开始的计算机虽然庞大,但是远没有今天体积小得多的计算机强大和复杂。为啥呢?因为它处理的任务非常单一,而且并发性也很低。开始时就根本没有并发,只能执行最基本的纯数学计算,在彻底完成一个计算任务前无法开始第二个任务,就算开始第二个任务都要人来辅助操作。而其复杂化则是随着任务之自动推进的实现,以及进一步“并发”的实现开始跨越式发展的。

而所谓“单核实现多线程”的本质是啥呢?本质不就是“单核多任务”吗?只是这个“任务模型”比传统的“进程模型”颗粒更小了一点,从而进一步增加并发提升效率,对计算机的“单核多任务”这个核心模型而言,仅仅是量变,这为啥不能支持?答案当然就是支持。

二、计算机硬件与软件的依赖关系

不同软件对硬件的依赖程度区别很大,依赖最强的就是“固件”,它随硬件的生产一起被烧录在硬件上,一度只能读不能写,后面即使可以改动也要用“非常”手段,这种软件显然受硬件影响最大,典型的比如BIOS系统。但还有一种软件,其存在就是为了“无视硬件区别”的,卖点就是“跨平台”,它受硬件的制约就非常小,比如Java程序。

“单核”其实描述的是一种“硬件状态”,而“多线程”是一种软件机制,而且是很“软”那种,其实现离“硬件的细节”距离很远,受硬件的影响很小,与硬件是一种“解耦”状态,是“跨平台”的。就像学习汇编指令一般都会参照某个具体的机型进行,因为它是一种与硬件依赖性很强的软件,但是学进程或者线程这种任务机制,你有见过哪本教材要强调“机型”吗?

为啥不强调呢?当然就是与其无关或不受其影响,既然不受其影响,当然就是单核也好多核也罢,多线程机制都无所谓,都可以基于它们进行实现。

三、总结

最后补充一点的就是,本文标题为了方便说明,直接援引了别人的提问方式,而严谨的说法不应该是“单核可以实现多线程吗?”,而是“单核支持多线程吗?”,因为多线程就不是“核”这个硬件实现的,而是一种纯软件的实现。

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2024年2月1日 17:15
下一篇 2024年2月1日 17:16

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信