doc (Chromium多线程模型设计和实现分析)(最终版) ㊣ 精品文档 值得下载

🔯 格式:DOC | ❒ 页数:89 页 | ⭐收藏:0人 | ✔ 可以修改 | @ 版权投诉 | ❤️ 我的浏览 | 上传时间:2022-06-25 13:34

(Chromium多线程模型设计和实现分析)(最终版)

区别主要在于函数只执行次循环,而类的成员函数执行的是无限循环。函数不能够进入睡眠状态,如果它有个延迟处理的消息,那么需要通过函数调用层的类的成员函数来进行调度,而类的成员函数可以自行进入睡眠状态来调度延迟处理消息的执行。至此,我们就分析完成应用程序的线程是如何实现的消息循环了。接下来我们继续分析另外个特殊的消息循环,那就是负责执行的线程的消息循环。在前面分析的类的成员函数中,除了我们提到它会调用类的成员函数和来执行些与线程相关的工作之外,还会调用类的成员函数来执行其它的启动任务,如下所示,这个函数定义在文件中。类的成员函数执行的启动任务很多,这里我们只关心与线程相关的任务,如下所示,,,这个函数定义在文件中。类的成员函数首先是会创建个对象,并且保存在成员变量中。这个对象封装了当前线程的个消息循环,因此通过它可以向当前线程的消息队列发送消息。当前线程即为应用程序的线程,因此有了这个对象之后,接下来可以向线程的消息队列发送消息。类的成员函数创建了个用来创建线程的,这个绑定的函数为类的成员函数,并且会保存在前面创建的个的内部等待执行。最后,取决于应用程序的线程是使用同步还是异步方式来启动,类的成员函数使用不同的方式来执行保存在成员变量指向的个对象中的如果是使用同步方式启动,那么就调用上述对象的成员函数来执行保存在它里面的各个对象的成员函数来执行它们。如果是使用异步方式启动,那么就调用上述对象的成员函数向线程的消息队列发送个消息,当该消息被处理时,再执行保存在上述对象里面的各个对象的成员函数。无论是同步方式,还是异步方式,最终都会在线程调用类的成员函数来创建系列线程,如下所示这个函数定义在文件中。类的成员函数创建了很多线程,每个线程都有专门的作用。这些线程的作用可以参考以下的枚举类型的定义,,,,,,,这个枚举类型定义在文件中。回到类的成员函数中,我们只关注线程的创建过程。这个线程使用个对象来描述,并且通过调用该对象的成员函数来启动。类是从类继承下来的。从前面的分析又可以知道,类又是从类继承下来的。因此,应用程序中用来负责执行的线程实际上是通过类的成员函数来创建,并且在创建的时候,指定创建的消息循环的类型为。从前面分析的类的成员函数的实现可以知道,类型为的消息循环使用的消息泵的通过类来描述。类是从类继承下来的,它的定义如下所示,这个类定义在文件中。类与前面分析的类实现消息循环的最大区别是,前者通过实现线程睡眠与唤醒,而后者是通过条件变量实现线程睡眠与唤醒的。在平台上实际上就是封装了由内核提供的机制。如果读过这篇文章,应用程序使用的的消息循环机是基于机制实现的。因此,里面的线程的消息循环机制与应用程序的消息循环机制的实现是很相似的。接下来我们就简单分析里面的线程的消息循环的实现,主要就是分析类的构造函数成员函数和的实现。类的构造函数的实现如下所示,这个函数定义在文件中。类的构造函数主要就是调用成员函数初始化,如下所示,这个函数定义在文件中。类的成员函数首先是创创建个管道,并且分别将该管道的读端和写端文件描述符保存在成员变量和中。接下来,类的成员函数创建了个里面的,保存在成员变量中,并且通过提供的函数指定该是用来监控文件描述的和事件的,同时指定上述事件发生时,就调用类的静态成员函数。这相当于是创建了个里面的。再接下来,类的成员函数通过提供的函数创建了个。这相当于是通过提供的函数创建了个文件描述符。最后,类的成员函数通过调用提供函数将前面创建的加入到前面创建的里面去,以便可以对指定的事件进行监控。这相当于是调用了提供的函数。接下来,我们继续分析类的成员函数的实现,如下所示,,,,这个函数定义在文件中。与类的成员函数相比,类的成员函数的执行流程是相似的,主要区别在于类通过调用提供的函数使得线程进入睡眠状态,而类通过条件变量使得程进入睡眠状态。除了用来监控消息队列有无新增消息之后,还用来监控指定的文件描述符的事件,如以下代码所示,这段代码调用提供的函数检查其它指定监控的文件描述是有事件发生。如果有发生的话,就调用它们指定的回调函数进行处理。注意,这里调用函数时,第二个参数指定为,表示在没有事件发生的情况下,不会阻塞当前线程的执行。在调用函数时,如果第二个参数指定为,则表示在没

下一篇
(Chromium多线程模型设计和实现分析)(最终版)第1页
1 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第2页
2 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第3页
3 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第4页
4 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第5页
5 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第6页
6 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第7页
7 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第8页
8 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第9页
9 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第10页
10 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第11页
11 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第12页
12 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第13页
13 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第14页
14 页 / 共 89
(Chromium多线程模型设计和实现分析)(最终版)第15页
15 页 / 共 89
温馨提示

1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。

2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。

3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。

4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。

5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。

  • 文档助手,定制查找
    精品 全部 DOC PPT RAR
换一批