Câu hỏi này không có câu trả lời đơn giản ...
Các Writer
, đó là lớp cha của PrintWriter
đề cập đến một cách rõ ràng trong tài liệu constructor của nó rằng tất cả các bộ phận quan trọng đồng bộ hóa hoặc trên Writer
dụ chính nó, hoặc trên một cách rõ ràng đối tượng được chỉ định.Do đó, Writer
rõ ràng là chỉ an toàn ...
Thật không may, tài liệu lớp con PrintWriter
không hứa hẹn rõ ràng như vậy. Nó thừa hưởng đối tượng khóa Writer
, nhưng không có cách nào để biết liệu có bất kỳ phương thức bổ sung hoặc ghi đè nào vẫn an toàn không.
Mặt khác, theo như tôi có thể nói, Sun/OpenJDK PrintWriter
implementation chứa các khối synchronized
theo mọi phương thức. Nhưng điều này dường như không phải là hành vi được ghi lại rõ ràng.
Tôi thà chơi nó an toàn và cho rằng PrintWriter
không phải là thread-an toàn, vì dựa vào hành vi không có giấy tờ và hối tiếc này trong thời gian dài ...
[Câu trả lời này] (http://stackoverflow.com/a/714424/1079354) có thể làm sáng tỏ một chút. – Makoto
có thể trùng lặp của [Có phải là chuỗi InWriter của Java an toàn không?] (Http://stackoverflow.com/questions/714287/is-a-java-sockets-printwriter-thread-safe) –
Tôi đã thấy điều đó. Nó không chính xác cùng một câu hỏi và không có bằng chứng được đưa ra. – H2ONaCl