那么就给这个循环加一个跳出条件,比如说
private boolean stop=true
在循环当中增加
if(stop=false){
break
}
public void setStop(boolean stop)
{
this.stop=stop
}
然后在需要停的时候调用setStop(false)就可以了
上面纯手打,代码拼写什么的可能有错大概就是这个意思
顺便说一下,thread.interrupt()是用来防止sleep或者wait方法卡死的,不会让线程终结。你要让线程结束还是要手动让程序跳出循环
java中用socket一次传多个文件,参考思路如下:1、把线程放到Vector 线程池里面;
2 、每次从Vector里面拿到第一个空闲的,如果没有,就新建一个线程,并保存到线程池, 线程状态为使用中;
3 、线程完毕后,通知管理类,管理类把线程标识为空闲;
可以封装为简单的方法,如下:
public MyThread getFreeThread(){
.. // 从池里面获取一个空闲线程
}
public void finished(MyThread o){
// 线程通知管理类,我已经完成了
}
你是不是尝试把文本都读到内存里再传输?这样客户端或者服务器的内存早就爆了。你应该申请一个固定长度(4K)的byte数组作为缓冲区,打开InputStream从数据源读取固定长度数据到缓冲区,再把缓冲区数据写入OutputSteam中,循环直到数据传输完毕,然后把Socket关掉。OutputSteam也应该用缓冲BufferedOutputStream封装一下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)