系统线程是内核在系统初始化期间自动生成的线程。
内核生成以下系统线程:

  • 主线程:
  • 空闲线程

主线程

此线程执行内核初始化,然后调用应用程序的main()函数(如果定义了函数)。
默认情况下,主线程使用配置的最高抢占线程优先级(即 0)。如果内核未配置为支持抢占式线程,则主线程将使用配置的最低协作线程优先级(即 -1)。
主线程是执行内核初始化或执行应用程序功能时必不可少的线程;这意味着如果线程中止,则会引发致命的系统错误。如果main()未定义 ,或者如果mian()执行后正常返回,则主线程将正常终止,并且不会引发任何错误。

空闲线程

当系统没有其他工作要做时,此线程将执行。如果可能,空闲线程完成低功耗以节省功耗。否则,空闲线程只是执行不执行任何操作的循环。只要系统正在运行,空闲线程就会一直存在,并且永远不会终止。
空闲线程始终使用已配置的最低线程优先级。如果这使其成为协作线程,则空闲线程会重复产生 CPU 空闲,以允许应用程序的其他线程在需要时运行。
空闲线程是基本线程,这意味着如果线程中止,则会引发致命的系统错误。

其他线程

还可能生成其他系统线程,具体取决于应用程序指定的内核板配置选项。例如,启用系统工作队列会生成一个系统工作队列线程,该线程为提交给它的工作项提供服务。