默認完成的Ehcache支持多線程還是需要更改一些配置? 在多線程我用的Ehcache應用程序,我發現DB命中數實際上是增加的,即沒有可用於所有的線程沒有全局高速緩存儘管我的緩存的都是單身。有什麼建議麼?的Ehcache和多線程
14
A
回答
11
這可能有助於回答你的問題,從the FAQ:
是線程安全從緩存中檢索後,修改的元素值?
請記住,在高速緩存中元素的值是從多個線程全局訪問。 修改該值本質上不是線程安全的。檢索值,刪除緩存元素然後重新插入值更安全。
(重點由我加的)
1
從official documentation似乎是專門構建和測試,你不從多個線程修改Element
下高併發訪問運行良好,只要。
但是,當然,這並不意味着使用的Ehcache使你的代碼的線程的其他部分安全。如果您從多個線程(使用相同的鍵)獲取相同的值,那麼該實例可能是共享的,您需要在修改它之前知道您正在做什麼。最好似乎使用像字符串這樣的不可變對象作爲緩存值。
相關問題
- 1. 如何同步EhCache中多個線程的動作?
- 2. 多線程和多
- 3. Ehcache寫後緩存線程優先
- 4. EHCache JMS複製限制線程數量?
- 5. C#:線程和多線程的概念
- 6. ContentProvider和多線程
- 7. DataGridView和多線程
- 8. RxAndroid和多線程
- 9. JNI和多線程
- 10. ActiveAndroid.beginTransaction()和多線程
- 11. 多線程和類?
- 12. System.Reflection.MethodInfo.Invoke和多線程
- 13. 多線程和MFC
- 14. NSNotification和多線程
- 15. NHibernate和多線程
- 16. UITableViewDataSource和多線程
- 17. UIImage和多線程
- 18. QWebPage和多線程
- 19. Spring和多線程
- 20. java.util.logging.FileHandler和多線程
- 21. ZeroMQ和多線程
- 22. 多線程和gdb
- 23. 多線程和Swing
- 24. 多線程和pthread_join
- 25. NSOpenGLLayer和多線程
- 26. 多線程和GDB
- 27. 多線程和sqlalchemy
- 28. System.IO.Ports.SerialPort和多線程
- 29. NSManagedObjectContexts和多線程
- 30. SQLite和多線程
另一種方法是看的Ehcache明確鎖定API:http://ehcache.org/documentation/explicitlocking.html,因爲上了Ehcache和多線程的討論是沒有考慮這個方面可能是不完整的。 – 2011-07-15 15:46:55