我在多線程環境中有一個靜態共享資源。那麼,爲了確保順序訪問,我需要考慮多線程環境中的一些事情?如何在多線程環境中使用靜態
-1
A
回答
3
使用級別鎖執行對其的操作。對於例如
public static void setResource(someResource) {
synchronized(ClassName.class) {
resource = someResource;
}
}
交替,你可以做以下
public static synchronized void setResource(someResource) {
resource = someResource;
}
0
如果只讀資源儘量做到一成不變,那麼你不必擔心 多線程。
如果它不是隻讀然後嘗試不使它static.Its一個壞主意。 因爲要同步它的訪問權限,你需要類級鎖。級別 鎖需要仔細檢查它可以不利地影響你的應用程序的性能 。
可能是您的靜態共享資源可以轉換爲使用任何併發數據 結構如ConcurrentHashMaP,ConcurrentLinkedQueue然後你很好去。
+0
請做添加評論你爲什麼downvoting? – veritas
相關問題
- 1. 任何在多線程環境中使用靜態內部類的問題?
- 2. 在多線程環境中使用NLog
- 3. 在多線程環境中使用CList
- 4. 在多線程環境中使用TraceSource
- 5. 在多線程環境中使用StringBuilder
- 6. 在多線程環境中使用Log4Net
- 7. 在多線程環境中使用sqlite
- 8. 如何在多線程環境中將變量聲明爲靜態屬性
- 9. 在靜態環境中使用log4php
- 10. 如何在多線程環境中有效使用RestTemplate?
- 11. 如何在多線程環境中使用嵌入式MySQL?
- 12. 如何在多線程環境中使用JdbcTemplate?
- 13. 如何在多線程環境中使用JNI_CreateJavaVm(C++)
- 14. 如何在多線程環境中正確使用redis和servicestack?
- 15. AnyEvent在多線程環境
- 16. 在多線程環境
- 17. 線條文化在靜態類在多石的環境
- 18. 如何在線程安全環境中定義靜態數組列表
- 19. Lucene IndexReader如何在多線程環境下使用?
- 20. 如何關閉多線程環境中的線程java
- 21. 在多線程環境中生成PDF
- 22. Shiro在多線程環境中
- 23. 在.net中調試多線程環境
- 24. 在多線程環境中重繪
- 25. 在多線程環境中休眠
- 26. 在多線程環境中讀取值
- 27. 實現多線程環境
- 28. 多線程環境問題
- 29. 靜態屬性如何在多環境下工作?
- 30. 在多線程環境中使用toplink中的update語句
正確的同步或不變性。有了一些代碼,我們可以更具體。 –
您需要同步對此資源的讀取和寫入訪問。爲此,您需要使用此資源在所有線程之間共享的鎖。 – Matthias
使用級別鎖執行對其的操作。 –