0

我正在编写一个程序,其中一个程序创建一个线程,该线程又从套接字读取,我的问题是当创建两个线程时,都从数据输入流中读取。一个线程正确读取,而另一个线程遇到 EOS 并返回 -1 作为读取的字节数。我已经同步了我的运行方法

4

2 回答 2

0

一定是因为第一个线程读取流直到EOF。这是预期的行为。如果要拆分读取,例如在 100 字节后交换读取器,请使用read(byte[] b, int off, int len)否则从一个线程读取数据然后共享它。

于 2012-09-11T10:30:54.890 回答
0

你在做什么没有意义。您不能按顺序或同时读取两次流。在这种情况下,如果线程 A 读取第一个字节,则线程 B 无法读取第一个字节。如果线程 A 读取了所有字节,则线程 B 无法读取其中任何一个。

于 2012-09-11T11:44:35.057 回答