通过chromium 官方文档,线程和任务一节我们可以知道 ,chromium有两类线程,一类是普通线程,最典型的就是io线程和ui线程。 另一类是 线程池线程。 今天我们先分析普通线程的实现,下一篇文章分析线程池的实现。(基于版本 117.0.5847.0(开发者内部版本) (64 位) 分析)。
通过官方文档我们知道,chromium的普通线程采用轮询消息队列的模式来处理任务。这种模式在ui编程中非常常见,比如Android的MessageLooper模型, glib的MainLooper模型, java的netty库都是采用此种模式,那么分析chromium模型我们就要先找到线程运行的核心消息循环。
方便后面学习,我们先给出总体数据结构:
chromium使用Thread类表示普通的线程。
我们先看一下Thread的启动逻辑
base/threading/thread.cc
一、任务循环
bool Th