簡體   English   中英

點燃緩存線程安全嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM