Chuỗi Vector có an toàn trong Java không?
Chuỗi Vector có an toàn trong Java không?

Video: Chuỗi Vector có an toàn trong Java không?

Video: Chuỗi Vector có an toàn trong Java không?
Video: Code C/C++ khi đi làm thực tế có đáng sợ như lời đồn? 2024, Tháng mười một
Anonim

Véc tơ tất cả các phương pháp đều được đồng bộ hóa. Vì vậy, sử dụng nó từ nhiều chủ đề Là " an toàn ". Bạn chỉ cần đồng bộ hóa nếu bạn cần quy trình đọc-đánh giá-ghi là nguyên tử. Việc đồng bộ hóa các phương thức của riêng bạn không nhất thiết phải làm cho mã của bạn chủ đề - an toàn cho những tình huống đó.

Giữ nguyên chế độ xem này, chuỗi danh sách có an toàn trong Java không?

Trên thực tế, tất cả các lớp tập hợp (ngoại trừ Vector và Hashtable) trong java . gói sử dụng không chủ đề - an toàn . Đó là lý do tại sao mới bộ sưu tập ( Danh sách , Set, Map, v.v.) không cung cấp điều khiển đồng thời nào để cung cấp hiệu suất tối đa trong các ứng dụng đơn luồng.

Tương tự, bộ sưu tập nào là an toàn cho chuỗi trong Java? MỘT chủ đề - an toàn lớp là một lớp đảm bảo trạng thái bên trong của lớp cũng như các giá trị trả về từ các phương thức, là đúng khi được gọi đồng thời từ nhiều chủ đề . Các thu thập các lớp học là chủ đề - an toàn trong Java là Ngăn xếp, Vectơ, Thuộc tính, Bảng băm, v.v.

Cân nhắc kỹ điều này, liệu chuỗi Java HashSet có an toàn không?

HashSet không phải chủ đề an toàn HashSet trong Java không phải chủ đề an toàn vì nó không được đồng bộ hóa theo mặc định. Nếu bạn đang sử dụng HashSet trong môi trường đa luồng nơi nó được truy cập bởi nhiều chủ đề đồng thời và cũng được sửa đổi về cấu trúc dù chỉ một chủ đề thì nó phải được đồng bộ hóa bên ngoài.

Chuỗi ArrayList hay vector an toàn là gì?

Véc tơ chậm như nó là chủ đề an toàn . So sánh Lập danh sách nhanh vì nó không được đồng bộ hóa. Do đó trong Lập danh sách Hai hoặc nhiều hơn chủ đề có thể truy cập mã cùng một lúc, trong khi Véc tơ được giới hạn ở một chủ đề tại một thời điểm. MỘT Véc tơ mặc định tăng gấp đôi kích thước mảng của nó.

Đề xuất: