我正在編寫一個程序,其中一個程序創建一個從套接字讀取的線程,我的問題是當創建兩個線程時,都從數據輸入流中讀取。一個線程正確讀取,另一個線程遇到一個EOS,並在讀取字節時返回-1。我已同步我的運行方法當兩個線程從數據輸入流中讀取時EOS到達
0
A
回答
0
必須是因爲第一個線程讀取流直到EOF。這是預期的行爲。如果你想分開閱讀,例如在100字節之後交換讀取器,使用read(byte[] b, int off, int len),否則從一個線程讀取數據然後共享它。
0
你在做什麼沒有意義。不能連續或同時讀取兩次流。在這種情況下,如果線程A讀取第一個字節,則線程B不能讀取第一個字節。如果線程A讀取所有字節,則線程B不能讀取它們中的任何一個。
相關問題
- 1. 從輸入流CLI讀取數據 - NodeJS
- 2. 從輸入流中讀取
- 3. 讀取線和字節[]從輸入流
- 4. 從輸入中讀取數據在Smalltalk中逐行寫入流
- 5. 連續數據讀取時輸入流讀取問題
- 6. Python從兩個輸入文件中讀取數據
- 7. Java - 從輸入流讀取時卡住
- 8. 從輔助線程讀取輸入
- 9. 從多個線程讀取SQL數據
- 10. BASH:用於從兩個輸入讀取最佳架構流
- 11. 從輸入流中讀取時缺失第一個字符
- 12. 需要再次幫助從輸入流中讀取數據
- 13. 從android箱中讀取HDMI輸入的原始數據流
- 14. 閱讀()從標準輸入讀取流
- 15. 從標準輸入流中讀取Hadoop
- 16. 從輸入流中讀取html java
- 17. 從輸入流中讀取的xuggler icontainer
- 18. 在流水線讀取循環中讀取鍵盤輸入
- 19. 將數據從輸入文件讀取到數組時出錯
- 20. 從線程讀取數據(在Servlet中)
- 21. 線程中斷未終止輸入流讀取阻塞調用
- 22. 從sshj輸入流讀取時,如何獲得'輸入提示'?
- 23. 丟失數據讀取時/寫入流
- 24. 當數據輸入到另一個輸入時清除輸入
- 25. 當讀取數據流,從流中讀取時檢查EOF爲什麼不停止迭代時0字節讀
- 26. 從數據輸入流中讀取響應後,我可以寫入數據輸出流嗎?
- 27. 'com.itextpdf.text.exceptions.InvalidPdfException:從servlet讀取輸入流時未找到PDF頭標籤
- 28. 從同一個數據流中讀取多個數據流不支持併發IO讀取或寫入操作
- 29. Java/Android - 從輸入流讀取後寫入輸出流
- 30. 將數據從一個輸入插入到兩個mysql列中
您應該只使用一個線程從流中讀取,否則這可能會導致混淆。您不需要同步讀取,因爲它已經是線程安全的。如果你得到'-1'則表示流結束。 –
讀取方法阻塞,直到某些流被正確接收,在這種情況下,它達到EOS並返回-1,這反過來停止整個過程 – Joy
這個問題只發生在有時,有時它正常工作..這不是一個問題一直髮生。 – Joy