Mã của tôi:StringBuilder có an toàn không (sử dụng nó với parallelStream)?
StringBuilder sb = new StringBuilder();
events.parallelStream().forEach(event -> {
sb.append(event.toString());
sb.append("\n");
});
Tôi không quan tâm đến thứ tự của các events.toString()
trong kết quả cuối cùng. Nhưng tôi quan tâm rằng các events.toString()
sẽ xuất hiện một cách chính xác một dòng khác, mà không cần trộn/rối lên tất nhiên.
Là parallelStream
(thay vì stream
) có an toàn trong vấn đề này không?
Thậm chí nếu bạn đã sử dụng StringBuffer, bạn có thể nhận được hai sự kiện liên tiếp và sau đó hai dòng mới trong một hàng. – Random832
Câu trả lời là không. (có thể hữu ích: [Làm thế nào để chứng minh theo lập trình rằng StringBuilder không phải là luồng an toàn?] (https://stackoverflow.com/questions/48558432)) – Andrew