dự án java appengine của tôi không giữ bất kỳ nhà nước giữa các yêu cầu trừ những ứng dụng sau đây của Memcache:Danh sách kiểm tra cho thread-safe java trên appengine
- làm thành khách quan sử dụng memcache để cache kho dữ liệu được
- tôi sử dụng memcache như một cách để thực hiện các nhiệm vụ dọn dẹp hàng loạt sau nhiều yêu cầu (ví dụ:
if (the memcache doesn't think a cleanup task is already running) schedule another cleanup task
).
Tôi không có/tài liệu tham khảo tĩnh toàn cầu đối với bất kỳ đối tượng, ngoại trừ:
- Người dùng thực hiện được giữ trong một đối tượng
static ThreadLocal<User>
. Điều này có nghĩa là mỗi yêu cầu sẽ nhận được bản sao của một Người dùng, đúng không? - Tôi có một lớp xử lý tất cả thao tác dữ liệu và một cá thể được giữ như một loại biến toàn cục trong đối tượng
static DataCoordinator
.
Tôi cần làm gì để đảm bảo an toàn cho chuỗi của mình? Tôi có cần phải ném một từ khóa synchronized
vào mọi khai báo phương thức trong việc triển khai DataCoordinator
của tôi, vì nhiều luồng có thể truy cập vào nó không? Có đúng là đối tượng ThreadLocal<User>
sẽ luôn tạo đối tượng riêng biệt User
cho mỗi chuỗi sao cho mỗi yêu cầu sẽ được xác thực riêng biệt?
Tôi là tổng số người mới tham gia tư duy an toàn cho chủ đề. Tôi nên đọc gì?
Cảm ơn bạn đã được trợ giúp và xin lỗi vì thiếu tính đặc hiệu.
Bạn có bất cứ lớp singlton, nơi bạn luôn có được một tham chiếu đến cùng một ví dụ thông qua một .getInstance()? Nếu vậy, nhiều yêu cầu song song được thực thi trong các luồng khác nhau bên trong cùng một cá thể/cá thể có thể nhận được tham chiếu đến cùng một đối tượng .... và sau đó lớp trong việc sử dụng nó hoặc sửa đổi các biến mẫu. –