Java 多线程通信之管道通信(pipe)及常见异常处理 (二)

2014-11-24 10:53:19 · 作者: · 浏览: 2
加上,将会抛出“java - IOException: Read end dead”。②若将第66行和第72行注释掉的代码加上,将会抛出“java - IOException: Write end dead”。原因都是一样的:在利用管道读写数据时,必须保证利用管道读写数据的线程都不能退出。针对上面的程序,如果是第①种情况,是因为Consumer(消费者)线程在读出管道中的数据后,线程就运行结束退出了。这时再向建立链接管道的线程Producer中写入数据时就会抛出异常。同样,如果是第②种情况就,是因为Producer(生产者)线程在写入管道中的数据后,线程就运行结束退出了。这时再由建立链接管道的线程Consumer中读出数据时就会抛出异常。