Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1068859
  • 博文数量: 242
  • 博客积分: 10209
  • 博客等级: 上将
  • 技术积分: 3028
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-12 09:27
文章分类

全部博文(242)

文章存档

2014年(1)

2013年(1)

2010年(51)

2009年(65)

2008年(124)

我的朋友

分类: LINUX

2009-08-16 21:52:20

1. 方案一是xml文件下载和解析在一个线程中实现。方案二是由主函数维护一个队列,一个线程池负责下载xml文件到本地,然后将文件名放入队列尾部,另有线程池负责从队列头提取文件名然后解析文件。方案二结构比较清晰,一个线程池IO操作多,另一个线程池cpu运算多,结合起来效率会高些。开始时程序按照方案二编写,但一直未能调试通过,由于时间关系,改为方案一实现。


2. 由于要下载和解析的xml文件数量较大,考虑客户等待时间,需要使用多线程来实现下载和解析。同时又考虑系统负载,不能针对每一次下载和解析都先创建一个线程再销毁。解决方案是使用线程池,每个线程完成一次下载和解析后被线程池回收,再用于其它下载和解析。程序中使用了glib提供的线程池实现。


3. 当某一线程找到与用户输入视频名相应的id时,如何立即结束线程池中其他线程的工作,同时又不结束本进程?该问题目前还未解决。目前实现是等到所有xml文件都被下载和解析后才开始根据id下载视频。

4. if-else嵌套过多,导致代码结构不清晰。未解决!


5. 错误处理只是打印出错信息,需要统一的清晰的错误处理模块。


6. connect改为非阻塞模式,不知在这里是否有意义?
阅读(812) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~