java多线程下载的问题请教。
发布网友
发布时间:2022-04-14 04:53
我来回答
共3个回答
热心网友
时间:2022-04-14 06:22
你书上的code和http://www.cnblogs.com/wanghui390/p/4046575.html 这个网址上的一样么?
如果一样的话,那么我觉得这么做的目的应该是:
fileSize/threadNum 的结果是四舍五入之后的结果,如果是舍去了一部分,那么按照这个网址上的code到最后就会有一点没有下载。所以它另每个filtePart的大小都增大1,并且在DownThread里面加入了另外一个条件:
length < currentPartSize && (hasRead = inStream.read(buffer)) > 0
就可以保证在文件的末尾,停止读操作。
热心网友
时间:2022-04-14 07:40
说实话我没明白你什么意思,不过我觉得没啥好疑惑的,多线程下载主要是多个线程分区域下载文件,下载完成在合并,不一定非要这样,你自己看着写,只要文件中间没有断掉的数据就ok了,比如说一共10k的东西,共分成4个线程下载,1+2+3+4;2+2+3+3,。。。。都是可以的。至于分配的过程,我觉得不用太过纠结
热心网友
时间:2022-04-14 09:15
假设fileSize为13threadNum为4 ,13/4=3;则文件分片结果为0-3,3-6,6-9,9-12.不能全覆盖。
如果加1文件分片结果为
0-4,4-8,8-12,12-16可以实现全覆盖。
因为13/4是有余数的,如果不+1后边的余数没有计算在内(可能)会导致长度丢失。
JAVA多线程下载问题。总是遇到资源响应错误的问题。
单纯的就上面个这个代码来说是没有问题的。你先打印出http.getResponseCode()的值是多少。到API中去看对应的原因是什么。状态码打印出来了去HttpURLConnection类下面找对应的错误描述。找到原因了就自然解决了,你给的代码太少了。也只能给你分析到这里了。
java多线程下载器分割资源如何还原
每个线程下载文件的一部分,并将自己那部分存储为FILE_文件块编号的方式。每个线程结束时都去检查是否自己是最后一个下载线程,如果不是,则直接死掉,如果是最后一个线程,则去启动文件合并的线程,然后死掉。文件合并的线程循环遍历这些文件块,用JAVA的RandomAccessFile类,将文件块按照文件块编号的顺序依...
Java并行流:一次搞定多线程编程难题,让你的程序飞起来!
使用多线程下载文件 创建DownloadThread对象,启动多个线程进行下载操作,每个线程负责处理URL的一个块。使用Fork/Join进行下载 创建DownloadAction类,实现递归操作,将URL列表拆分为两半,分别创建子任务处理,使用invokeAll方法提交至线程池。使用Java并行流 创建URL列表,使用parallelStream转换为并行流,forEach遍...
java多线程问题 为什么我这个提示出现错误 我是按照毕向东老师教程写的...
你的main函数是在ThreadDemo类里面,所以这会报错,你把var.java的名字命名为ThreadDemo,这样就不会报错了
Java多线程问题总结?
Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。java课程培训机构认为这篇文章主要是对多线程的问题进行总结的,因此罗列了多个多线程的问题。这些多线程的问题,有些来源于各大网站、有些...
求JAVA编写网页下载程序代码
这个事多线程下载一个文件 http://hi.baidu.com/yinjiubo_java/blog/item/55fe9ffc18c475f9fc037f98.html 这个是同时下载多个文件得 http://www.yuloo.com/jsjks/jsj-java/2008-08-26/112196.html 希望对你有用,多线程下载这玩意没写过,不过,可以给你个思路,不知正确与否,希望与你有用:对...
java下载图片超时原因是什么
解决超时问题的方法包括:增加超时时间:可以通过设置适当的超时时间来延长下载操作的等待时间,以便更好地适应网络连接不稳定的情况。优化网络连接:确保网络连接稳定,并尽可能选择较快的网络连接。压缩图片大小:如果图片文件过大,可以考虑对其进行压缩处理,以减少下载时间和带宽消耗。使用多线程下载:通过...
使用Java thread 多线程会有什么严重的错误?
会有各种错误吧.比如,如果一个线程正在迭代某非线程安全集合.另外一个集合却修改了这个集合.则会跑出modify什么的.如果一个线程取了某个对象做操作.另外一个线程却将对象里的内容置空,则会空指针 再比如说.一个线程需要判断某个集合是否为空.如果为空则new一个新的放进去,并在集合里添加一个元素....
java多线程的问题为何输出结果只有一个?
1、主要是tt.join的问题。2、当子线程开启后,主线程和子线程是并发或并行执行的,会多线程输出。但是tt.join是指将tt线程与主线程(即tt.join这段代码所运行时候的线程)合并,即等tt.join运行完后执行刚刚的主线程。而你的tt线程中的run()方法为:while(true)所以tt.join之后,tt一直在运行,故...
java+多线程异步堆栈实验中可能出现的问题?
4. 性能问题:多线程异步堆栈实验中,线程数量和任务数量的平衡会影响程序的性能。如果线程数量过多,会导致线程切换的开销增大,从而影响程序的性能。5. 异常处理问题:在异步堆栈实验中,如果任务出现异常,需要及时捕获并处理,否则可能会导致程序崩溃。6. 调试问题:多线程异步堆栈实验中,由于多个线程...