Chromium学习小结预案.pptx

Chromium学习分享 从多进程的角度看Chromium 从多线程的角度看Chromium Chromium中线程的实现 Chromium中线程的实现 一个Thread只能有一个MessageLoop被实例化。例如,在BrowserMain函数(该函数是Browser进程的入口函数)中实例化一个局部变量MessageLoop main_message_loop(MessageLoop::TYPE_UI),以后在该线程中任意位置可以通过调用MessageLoop::current()来获取该MessageLoop并调用MessageLoop::current()-Run()来执行该线程实体。 这其中的技术就是线程局部存储(ThreadLocalPointer),当构造一个MessageLoop时,构造函数会将这个MessageLoop指针设置到这个线程的ThreadLocalPointer 对象中,当MessageLoop对象析构时,会重置ThreadLocalPointer 对象。 线程中的自定义任务TASK 在多线程模型中最令人头疼的问题是“加锁”。为了极力避免锁的存在,Chromium的线程模型中加入了一种名为TASK的概念。当你期望你的一个逻辑(or函数)在某个线程中执行时,你可以在当前线程中创建一个Task对象,并将该逻辑放入到Task的Run方法中,最后通过调用“期望执

文档评论(0)

1亿VIP精品文档

相关文档