larbin的队列
来源:互联网 发布:yum openssl安装 编辑:程序博客网 时间:2024/05/22 23:28
以前整理过的关于larbin的队列结构给需要的网友:
为什么disk和priority的队列都是成对出现的,是因为可以认为每个site在namedSiteList当中都有一个小的队列来保存它的url,这个url的个数是有个限制的,当超过这个限制的时候就不能再把该site下的url放入,但也不能丢弃,而是放入wait队列。larbin会控制一段时间在disk队列中取url,一段时间在diskWait当中取url。disk和priority的区别只是优先级的区别。
为什么disk和priority的队列都是成对出现的,是因为可以认为每个site在namedSiteList当中都有一个小的队列来保存它的url,这个url的个数是有个限制的,当超过这个限制的时候就不能再把该site下的url放入,但也不能丢弃,而是放入wait队列。larbin会控制一段时间在disk队列中取url,一段时间在diskWait当中取url。disk和priority的区别只是优先级的区别。
namedSiteLIst的作用可以任务是实现了DNS缓存;IPSiteList是控制了polite访问。
larbin中用到的都是循环队列,根据存储方式不同,有存储在磁盘中的队列PersistentFifo,存储在内存中的队列SyncFifo,Fifo,ConstantSizedFifo 。
PersistentFifo:用于将优先级较低的urls存储在磁盘,文件名后六位是数字,随着urls的增加而递增,每个文件最多url数由type.h中的urlByFile指定,在从fifo中读出后如果输出文件已经读完,则会删除该文件,在reload时,如果只有一个文件,则会忽略,对于文件名后数字最大的文件作为输入文件(压入队列),最小的作为输出文件(弹出队列),在初始化时,文件名后数字最大的文件会被清空,这样保证url数是urlByFile的位数,可以容易的取得urls数
SyncFifo:只是在Fifo的基础上加了同步机制,用到pthread_mutex_lock(阻止两个线程同时对fifo访问)和pthread_cond_wait(fifo为空时等待)以及pthread_cond_broadcast(广播fifo中有数据),其实larbin只是单线程,无需同步,可以考虑扩展为多线程。
- larbin的队列
- larbin中两个wait队列的功能
- larbin队列(2)
- larbin的详细配置
- Larbin的通信机制
- larbin的整体结构
- larbin的设计思想
- Larbin的使用
- Larbin的配置
- 高效的larbin
- larbin 的main函数
- larbin
- larbin的程序的结构
- Larbin-C++实现的爬虫
- larbin中write的用法
- larbin的主函数介绍
- Larbin:Fifo.h 的学习
- larbin的类得分析
- Oracle修改列名
- eclipse 应用tomcat的日志配置
- 1.设置某些资源(如图片,css,js)在浏览器缓存的时间:Filter
- SQL2005删除复制数据库的发布与订阅的方法
- C\C++类型转换操作符
- larbin的队列
- 主题:JavaEE ear包类加载器机制解析
- 修改linux终端输出颜色
- 程序中得到百度的搜索结果
- 2.设置某些资源(如图片,css,js)在浏览器缓存的时间:Filter配置
- 不能转换为字符串,将一个整数倒序,如1234转换为4321
- 利用Dijkstra算法在下图中求出从源点V1到其余各点的最短路 (第四题)
- 窝--(2)
- Kill会话过程分析