Câu hỏi nói rằng tất cả tôi đều muốn sử dụng CacheBuilder, nhưng giá trị của tôi được kéo vào không đồng bộ. Điều này làm việc trước đây với MapMaker như CacheLoader không phải là một yêu cầu. Bây giờ tôi muốn biết nếu tôi có thể hack này lên hoặc nếu có bất kỳ lựa chọn thay thế không được chấp nhận. Cảm ơn bạn.Làm cách nào để một người nào đó sử dụng CacheLoader của Guava một cách không đồng bộ
Trả lời
Tôi nghĩ câu hỏi bạn đang cố hỏi là "Làm cách nào để sử dụng CacheBuilder mà không phải chỉ định CacheLoader?" Nếu đó là trường hợp, sau đó sẽ có hỗ trợ cho điều này trong phiên bản Guava 11.0. Trong khi chờ đợi một phương pháp xây dựng() trên CacheLoader đã được kiểm tra vào thân cây (tính đến sáng nay):
http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/cache/CacheBuilder.html
Có, cụ thể trong quy trình mà dữ liệu được truy xuất không đồng bộ mà tôi vẫn cho là trường hợp sử dụng hợp lệ. Cảm ơn bạn đã nhập. –
Ồ, nếu những gì bạn muốn là một CacheLoader không đồng bộ, thì đó là điều chúng tôi đang nói đến, nhưng nó sẽ không xảy ra bất cứ lúc nào sớm ... – fry
Một phương pháp sẽ được thực hiện với các thông số chung K và V như kết quả đầu ra mong muốn của bạn:
LoadingCache<K, ListenableFuture<V>> values = CacheBuilder.newBuilder()
.build(
new CacheLoader<K, ListenableFuture<V>>() {
public ListenableFuture<V> load(K key) {
/* Get your future */
}
});
- 1. Làm cách nào để sử dụng Tornado và Redis một cách không đồng bộ?
- 2. Có cách nào chung để đồng bộ hóa một phương pháp không đồng bộ không?
- 3. Làm cách nào để chạy lệnh hệ thống trong Perl một cách không đồng bộ?
- 4. Làm cách nào để POST một bộ đệm của JSON bằng cách sử dụng libcurl?
- 5. Làm cách nào để sử dụng lập trình không đồng bộ trong Perl?
- 6. Làm cách nào để tải dữ liệu JSON một cách đồng bộ với d3.js?
- 7. Mercurial: Đề xuất cách gửi toàn bộ kho lưu trữ đến một người nào đó
- 8. Làm thế nào để sử dụng FileAppenders của log4j không đồng bộ?
- 9. Khi nào/không sử dụng bộ điều hợp đồng bộ
- 10. Làm cách nào để sử dụng activemq không cục bộ?
- 11. Làm thế nào để triển khai một ứng dụng Rails không đồng bộ theo chủ đề?
- 12. Người dùng không đồng bộ và sử dụng TransactionScope
- 13. Làm cách nào để gửi email không đồng bộ từ ứng dụng MVC 3?
- 14. Có cách nào để kiểm tra đơn vị một phương pháp không đồng bộ không?
- 15. Làm cách nào để cài đặt MSI đồng bộ?
- 16. Làm cách nào để đồng bộ hóa các cam kết không đồng bộ trong ứng dụng khách GitHub Windows?
- 17. Cách sử dụng System.Media.SoundPlayer để phát không đồng bộ một tệp âm thanh?
- 18. Tôi có nên vứt bỏ một người viết chuỗi không? hoặc tái sử dụng bằng cách nào đó?
- 19. Làm cách nào để đồng bộ hóa đồng hồ của máy tính khi khởi động?
- 20. Làm cách nào để đồng bộ hóa hai quy trình?
- 21. Làm thế nào để không đồng bộ tuôn ra một tập tin ánh xạ bộ nhớ?
- 22. Cách tạo phiên bản đồng bộ hóa TreeMultimap của Google Guava
- 23. Làm cách nào để nhận dữ liệu stdout của tiến trình con không đồng bộ?
- 24. Làm thế nào để ẩn một lớp bằng cách sử dụng từ khóa nội bộ?
- 25. Tìm tuổi của một người nào đó trong SQL
- 26. Tôi làm cách nào để triển khai bộ nhớ đệm không đồng bộ?
- 27. Tôi làm cách nào để đăng nhập một người dùng?
- 28. làm thế nào để chạy một hàm javascript không đồng bộ, mà không cần sử dụng setTimeout?
- 29. Làm cách nào để đồng bộ cuộn với nhiều UIScrollView?
- 30. Mẫu để gói một hàm JavaScript không đồng bộ để làm cho nó đồng bộ
Câu hỏi thực sự không nói lên tất cả. Bạn có thể giải thích rõ ràng hơn những gì bạn đang làm và tại sao Cache không hoạt động cho bạn? – ColinD
Tôi đoán rằng bạn đang sử dụng 'MapMaker' để tạo một' ConcurrentMap' phi tính toán, sau đó bạn sẽ điền thông qua 'map.put'. Trong Guava 10.0.1, bạn có thể làm điều này với một 'Cache' bằng cách sử dụng' cache.asMap(). Put' – Ray
@ColinD: Vấn đề ở đây là tôi cần phải kéo một tập hợp dữ liệu một cách không đồng bộ như một lỗ trước khi có thể thiết lập bộ nhớ cache, máy tính yêu cầu bộ lỗ, tôi không thể sử dụng bộ nhớ cache theo yêu cầu như thế này. –