Từ Java Concurrency in practice Chương 3.3.3. ThreadLocalLời khuyên về việc sử dụng ThreadLocals để bọc các đối tượng đơn lẻ có thể thay đổi
biến Thread-địa phương thường được sử dụng để ngăn chặn việc chia sẻ trong các thiết kế dựa trên Singletons có thể thay đổi hoặc biến toàn cục.
Nếu chúng ta quấn chàng Singleton có thể thay đổi trong ThreadLocal mỗi chuỗi sẽ có bản sao Singleton riêng? Làm thế nào nó sẽ vẫn là một singleton sau đó? Đây có phải là những gì các tác giả có nghĩa là hoặc tôi thiếu một cái gì đó khá rõ ràng ở đây?
Ý bạn là gì bởi "bạn không quấn lớp đơn với ThreadLocal, nhưng đối tượng chứa trong singleton có thể ẩn hoặc không an toàn". bạn có thể xây dựng được không? – Geek
Tôi có nghĩa là singleton là một container mà bạn sử dụng để chia sẻ đối tượng. Giống như một singleton ConnectionManager sẽ được sử dụng để chia sẻ đối tượng kết nối DB. Vì vậy, bạn không quấn Trình quản lý kết nối mà thay vào đó là kết nối trong ThreadLocal (Thread Confinement) và do đó tạo kết nối có thể thay đổi và không an toàn, an toàn. Tôi hy vọng nó có ý nghĩa. –
vâng, điều đó có ý nghĩa. Tôi nghĩ rằng trích dẫn trong cuốn sách là mơ hồ. Bạn nghĩ sao ? – Geek