作者 | 深入研究鸿蒙,鸿蒙内核发烧友
出品 | CSDN(ID:CSDNnews)
头图 | CSDN 下载自东方 IC
阅读之前建议先读本系列其他文章,以便对本文任务调度机制的理解。
为什么要学这么多的相关概念?
鸿蒙的内核中 Task 和 线程 在广义上可以理解为是一个东西,但狭义上肯定会有区别,区别在于管理体系的不同,Task是调度层面的概念,线程是进程层面概念。比如 main 函数中首个函数 OsSetMainTask; 就是设置启动任务,但此时啥都还没开始呢,Kprocess 进程都没创建,怎么会有大家一般意义上所理解的线程呢。狭义上的后续有 鸿蒙内核源码分析(启动过程篇) 来说明。不知道大家有没有这种体会,学一个东西的过程中要接触很多新概念,尤其像 Java/android 的生态,概念贼多,很多同学都被绕在概念中出不来,痛苦不堪。那问题是为什么需要这么多的概念呢?