Tôi cần tạo ra các luồng tiêu dùng N, xử lý cùng một InputStream đồng thời, ví dụ: - biến đổi nó bằng cách nào đó, tính toán tổng kiểm tra hoặc chữ ký số vv Những người tiêu dùng này không phụ thuộc vào nhau và tất cả chúng đang sử dụng thư viện của bên thứ ba chấp nhận InputStream làm nguồn dữ liệu.Xử lý đồng thời một InputStream đơn lẻ với người tiêu dùng độc lập
Vì vậy, những gì tôi có thể làm là - tạo ra một số thực hiện của InputStream, mà sẽ
- đọc đoạn dữ liệu từ "cha mẹ" dòng
- người tiêu dùng bỏ cấm
- chờ đợi cho đến khi mỗi người tiêu dùng đọc toàn bộ đoạn
- đọc đoạn tiếp theo
trong khi trông đơn giản, nó có thể làm tăng các vấn đề khác nhau như livelo ck khi một số người tiêu dùng chết, thực hiện tất cả các phương pháp InputStream, kiểm soát ngã ba/tham gia của người tiêu dùng bằng cách sử dụng các rào cản/chốt, v.v.
Một người bạn nói với tôi rằng đó là nửa giờ để thực hiện.
Tôi muốn sử dụng một cái gì đó đủ trưởng thành (googling không đi kèm với kết quả như vậy, google-fu của tôi không đủ tốt?) Hoặc không bận tâm và sao chép toàn bộ nguồn "" vào một tệp tạm thời và sử dụng nó làm nguồn dữ liệu. Các giải pháp sau này có vẻ đáng tin cậy hơn, nhưng có thể kết thúc trong việc tạo ra các tập tin gigabyte (khi xử lý streaming âm thanh ví dụ).
Bạn có thể ghi dữ liệu vào tệp và tạo N FileInputStream không? –
@JonLin Khi anh ấy nói về phía cuối câu hỏi, anh ấy có thể. –