Tôi có một danh sách liên kết samples
:Là LinkedList thread-safe khi tôi truy cập nó với phiếu mua hàng và phiếu thăm dò ý kiến độc quyền?
protected LinkedList<RawDataset> samples = new LinkedList<RawDataset>();
Tôi đang phụ thêm yếu tố vào danh sách trong thread 1 như thế này:
this.samples.offer(data);
Và tôi lấy yếu tố từ nó trong một thread thứ hai như như vậy:
public RawDataset retrieveSample() {
return this.samples.poll();
}
Điều này có được coi là an toàn không? Mặc dù chuỗi 1 và 2 đều đang sửa đổi danh sách nhưng chúng chỉ làm như vậy trên đầu hoặc đuôi của danh sách, phải không?
Nếu không ai có thể đưa tôi đến một lớp học trong API Java đi kèm với poll
/offer
và chắc chắn là an toàn chỉ?
Cảm ơn bạn trước.
BTW: Collections.synchronizedList(new LinkedList())
sẽ không cấp cho tôi quyền truy cập vào offer
/poll
.
Phương pháp 'offer' và' poll' thực sự declard trong giao diện 'Queue', được thực hiện bởi LinkedList ngoài các giao diện Danh sách. Đó là lý do tại sao các phương thức này không có sẵn trên kết quả từ Collections.synchronizedList. –