“多线程下载”情形下的程序结构设计
来源:互联网 发布:js实现二级菜单导航 编辑:程序博客网 时间:2024/06/05 04:04
方案一
建立消息队列,任务队列的读、写都需要加锁,任务的添加是由主线程进行的,消息的读取是由下载线程执行的,下载线程的执行函数是死循环,一个任务执行完成后便读取下一个任务,主要的开销是锁带来的。
方案二
在主线程中添加任务,同时,分配任务也是由主线程完成的。
执行线程执行完一个任务后即退出,并通知主线程,主线程得知其空闲后,将剩下的任务分配给空闲线程处理。执行线程的主动权交给了主线程,整个过程不需要加锁。也不需要考虑锁可能带来的问题。
拓展:可以将任务的分配放到任何一个独立的、具有事件循环的线程中。
0 0
- “多线程下载”情形下的程序结构设计
- 多线程下的select网络程序结构
- 多线程无需加锁的情形
- x64 下的 segmentation 情形
- x64 下的 segmentation 情形
- 多线程网络通信的一种情形
- 多线程下的下载原理
- JPA下利于快速开发、快速调整业务的程序结构设计
- ftp 多线程下载的设计与实现
- ftp 多线程下载的设计与实现
- Linux操作系统下的多线程下载
- QT环境下的多线程下载实现
- .NET的情形驱动设计(Scenario Driven Design)
- 多线程下代码及多线程下载的深入研究
- Android下多线程下载
- Oracle 11g不同情形下的登录分析
- listview不能刷新显示数据(有数据的情形下)
- 二维情形下的最接近点对问题
- 浪潮发布G2平台
- Samba配置文件常用参数详解
- Hive JSON数据处理的一点探索
- Android UI相关知识
- 文件上传org.springframework.web.multipart.MultipartException问题的解决
- “多线程下载”情形下的程序结构设计
- centos7 安装Oracle11GR2
- Guide——欢迎使用CSDN-markdown编辑器
- linux下使用yum安装mysql
- 九度OJ 1019 简单计算器(栈的应用)
- 反转排序 自我经典理解
- 关于自动化测试模型介绍
- Access Modify Change三个时间的概念及修改
- web技术栈中不可或缺的Linux技术