如何实现在一个函数中开启多个线程的问题

 我来答
匿名用户
2016-11-09
展开全部
客户端程序是需要和服务端配合起来,这样才能得心应手的。
客户端,只需要一个线程函数的实现就可以了;打开多个线程,就调用这一个函数就可以了;但要保证为每个线程配置好独立的运行环境。比如:这个线程函数名是down()。
运行环境是:数据缓冲,数据块号,数据块大小。
举例:下载文件file.img, 文件很多有1GB,客户端开启10个线程同时下载,每个数据块10MB
那么,要和服务端协调好。
客户端:发送请求,下载file.img
服务端:接受客户端请求,打开file.img。告诉客户端,已准备好。
客户端:知道服务端准备好,则开起线程n,为其配置10M的缓冲,设置数据块序号n,请求服务端发送数据,然后等待接受。
服务端:收到线程的请求,记录该客户的请求,循环为此客户发送指定的数据块的内容,每个包的大小有你自己定好(比如每包1kB+校验码),每次发出去就等待客户的回复,记时,没有回复,需重发。直到发送完毕并成功发送。
服务端只开启一个线程就行,记录下每个客户的信息,给其发送所需的数据。
客户端:每个线程,收到数据,校验,直到完成,则保存好已接受的正确数据,结束自己。当所有数据接收成功,再按序号保存到磁盘。
你的问题是客户端的:
只要你能正确为客户端的每个线程,分配好自己的所需环境,就可以了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式