[英]Is ignite cache thread safe?
我計划從多個線程同時加載緩存。 最簡單的形式是:
IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache("ints");
ExecutorService es = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
for (int i = 0; i < 20000000; i++) {
int t = i;
es.submit(() -> {
cache.put(t, t);
});
}
這樣做是否安全? 我閱讀了該方法的文檔:
將指定的值與緩存中的指定鍵相關聯。 如果Cache先前包含鍵的映射,則舊值將替換為指定的值。 (當且僅當c.containsKey(k)返回true時,緩存c才包含密鑰k的映射。)
關於線程安全沒有任何說法。 那么同時放入IgniteCache
是否安全?
答案是肯定的,所有Ignite API都是線程安全的,可以從多個線程同時使用。
但是,進行單獨放置並不是進行數據加載的有效方法,因此有更好的技術。 有關詳細信息,請參閱此頁面: https : //apacheignite.readme.io/docs/data-loading
是的,所有IgniteCache
方法都是線程安全的,大多數其他API也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.