当前位置: 华文星空 > 知识

如何评价「线程的本质就是一个正在运行的函数」?

2021-07-04知识

如果我的学生问我线程是什么,我的回答基本也会和「线程的本质就是一个正在运行的函数」差不多

因为这是最容易让初学者理解并能够帮助他们应用到实践中的方式。对于我来说,我施教的目的达到了。

但如果在知乎上这么说,就经常就会有一些写了几年代码的「大神」们跳出来,指正我的不对,然后举出一堆专业术语来告诉我线程不是那么一回事。同时给我扣个误人子弟,不懂装懂之类的帽子。这让我很难受。

所以回答这种问题,我还是真的挺纠结的,一来我实在不想一上来就直接就扯什么调度器,时间切片,上下文切换,信号量之类的玩意,二来我又想把这个知识点科普出去,还得让「大神」们不至于太鄙视我,思来想去干脆完成实现一个「多线程」程序。来演示「线程」这一个概念是如何运作的----准确来说,我的意思是实现一个编译器,将代码中的函数编译为特定指令流,然后在此基础上实现一个虚拟机执行环境,执行该指令流并设计一个基于指令计数切片的调度器,完成这个线程的调度工作。然后我们进一步科普线程间的协同关系并引入更多的装逼术语。当然我们的多线程的实