1.10 双线程高效下载

1.10 双线程高效下载

基础问题:并行下载网上的资源

  • 1 什么时候才算是完成任务

两个线程必须协同工作,将网络上的数据下载完毕并且完全存储到硬盘上,只有在这个时候,两个线程才能正常终止。

  • 2 为了提高效率,希望两个线程能尽可能的同时工作

如果使用mutex,下载和存储线程将不能同时工作,因此Semaphore是更好的选择

  • 3 下载和存储线程工作的必要条件

如果缓冲区已经满,没有足够的缓冲空间存储下载的内容,则应该停止下载,如果已经下载完毕,也没有必要继续
如果缓冲区为空,则没有必要运行存储线程,如果下载已经结束,存储线程也就可以结束了

  • 4 共享缓存区的数据结构
posted @ 2020-11-27 13:59  BOTAK  阅读(78)  评论(0)    收藏  举报