P2Psim分析笔记(3)-taskmain函数流程-阿里云开发者社区

开发者社区> 技术小胖子> 正文

P2Psim分析笔记(3)-taskmain函数流程

简介:
+关注继续查看
    本文在查理的书架首先发布,会在最快时间内更新到Nathan的技术空间上。
    在上篇里,我们知道P2PSim是基于libtask的,libtask的第一个任务是通过taskmain函数来启动的。换而言之,taskmain是p2psim的主程序。下面的图里面给出了taskmain的主要流程。

    根据图示,taskmain先把-开头的参数解析出来,然后让Node类去解析protocol_file,然后让Topology类去负责解析topology_file。Topology在解析topology_file后调用Network类生出了第一个并发任务,这个任务负责根据topology建立peer的vector。随后调用了yield放弃cup让Network任务去充分处理topology对应的Peer生成工作。
    然后,taskmain让EventGenerator类根据event_file生成了对应的事件发生器(EventGenerator)的对象,这里采用了工厂模式,根据配置文件生成对应的事件发生器。同时还生成对应的观察者对象。 生成的发生器对象也是一个从Threaded派生的家伙,因此此刻第三个并发任务也开始运行了。
    最后,taskmain遍历了所有的node对象,让他们完成初始化。随后完成所有工作退出。



     本文转自nathanxu 51CTO博客,原文链接:http://blog.51cto.com/nathanxu/246528,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JAVA多线程高并发学习笔记(三)——Callable、Future和FutureTask
为什么要是用Callable和Future Runnable的局限性 Executor采用Runnable作为基本的表达形式,虽然Runnable的run方法能够写入日志,写入文件,写入数据库等操作,但是它不能返回一个值,或者抛出一个受检查的异常,有些需要返回值的需求就不能满足了。
1338 0
[实变函数]5.6 Lebesgue 积分的几何意义 $\bullet$ Fubini 定理
1 本节推广数学分析中的 Fubini 定理. 为此, 先引入 (1)(从低到高) 对 $A\subset \bbR^p, B\subset\bbR^q$, $$\bex A\times B=\sed{(x,y);x\in A, y\in B} \eex$$ 称为 $A$ 与 $B$ 的直积 (direct product).
1076 0
《区块链DAPP开发入门、代码实现、场景应用》笔记1——天外飞仙DAPP
Solidity编程语言解决了编写智能合约的不友好的问题,但是当合约编译并部署之后,对与这些接口的访问,对于一般的使用者来说,门槛有点高, 对普通用户来说也是非常不友好,为了使广大用户理解并方便快捷的访问区块链,以及区块链上的智能合约系统,开发者必须提供操作界面和结果查看界面,来简化用户访问和操作区块链的方式。
4019 0
14.Linux shell编程(函数)
(创建于2018/2/1) 1.简单的一个函数 1 #!/bin/bash 2 3...
728 0
文本分析和处理 awk|学习笔记
快速学习文本分析和处理 awk
31 0
[复变函数]第06堂课 2.1 解析函数的概念与 Cauchy-Riemann 方程 (续)
2. 解析函数及其简单性质 (1) 定义: a. 若 $w=f(z)$ 在区域 $D$ 内可微, 则称 $f$ 在 $D$ 内解析; b. 若 $w=f(z)$ 在 $z_0$ 处的某邻域内解析, 则称 $f$ 在 $z_0$ 处解析; c.
628 0
JavaScript创建对象(四)——组合使用构造函数和原型模式
在JavaScript创建对象(三)——原型模式中,我们阐述了原型模式存在的两个问题:一是没办法通过构造函数初始化对象属性,二是共享引用类型的数据导致数据错乱。
825 0
有效解决VC++6.0一个工程不能有多个main函数的解决方案
一.现象及原因 现象:在一个工程中有2个带有main函数的文件:InsertSort.cpp,ShellSort.cpp InsertSort.cpp 1 #include 2 3 void InsertSort(int A[],int n) 4 { 5 i...
1012 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载
《2021云上架构与运维峰会演讲合集》
立即下载