如何安全结束一个访问网络的线程
最近做个程序,要利用webservice 从一个服务器上下载文件,client用的是Axis2。
不用线程速度有点慢,于是改为多线程来实现,每个线程只下5MB数据,根据偏移值获取不同的byte[],然后组装成一个整体的文件。(不支持断点续传)
现有需求,在下载过程中,如果取消下载,如何才能安全关闭正在下载的线程,比如一个线程已下载了1MB,还4MB没下载,此时要取消下载,这个怎么才能把线程停下来?
我试了interrupt,interrupt 后线程还是在下载。如果用stop(已经不推荐使用了),stop程序就会卡住(奇怪的问题).
求教各位大虾怎么才能安全停住此线程?
run方法
public void run(){ byte[] block_bytes=Axis2SoapManager.getBlocks(offset,length); FileManager.writeFile(offset,block_bytes); Thread.sleep(100);}catch(InterruptedException iex){ //}catch(IOException ioe){ //}