求教多线程问题! 运行后不停的~~~抛异常
程序目标是想实现: 用户在控制台输入内容, 程序接收到用户的输入以后,启动一个单独的线程, 这个线程的作用是延时10秒把这个内容回显到控制台, 在这期间用户可继续输入内容, 每次输入都启动一个线程.
可是运行时, 当我输入第一个内容,回车后,控制台就开始不停(对!~是不停...)的抛Stream closed的Exception, 可是我并没有退出循环, 怎么会执行br.close()呢?
以下是程序的两个类的代码
可是运行时, 当我输入第一个内容,回车后,控制台就开始不停(对!~是不停...)的抛Stream closed的Exception, 可是我并没有退出循环, 怎么会执行br.close()呢?
以下是程序的两个类的代码
package net;
public class NetThread implements Runnable{
String data = null;
//constructor
public NetThread(String data){
this.data = data;
}
//run method
public void run(){
try {
System.out.println("Start sending...");
Thread.sleep(10000); //delay time
System.out.println("Sending completely! The message is: " + data);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
package net;
import java.io.*;
public class Test {
public static void main(String[] args){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = null;
while(true){
try {
System.out.println("Please enter: ");
input = br.readLine(); //accept input from console
if(input.equals("quit")){
System.out.println("Quit successfully!");
break; // exit
}
//create and start sending thread
Thread nt = new Thread(new NetThread(input));
nt.start();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
...全文
相关推荐
运行时异常与一般异常的区别?
运行时 异常 与一般 异常 的区别的详细说明..
Java多线程之多线程异常捕捉
在java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉,通过此篇文章给大家分享Java多线程之多线程异常捕捉,需要的朋友可以参考下
spark mllib window运行demo 抛异常NativeSystemBLAS-附件资源
spark mllib window运行demo 抛异常NativeSystemBLAS-附件资源
虚拟抛硬币程序.rar
非常简单的虚拟抛硬币程序,可统计出次数和百分率。 用vb编的~ 不仅没事可以拿来抛一抛,还可以研究并修改。
Android跨进程抛异常的原理的实现
主要介绍了Android跨进程抛异常的原理的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


Java SE
