St.*_*rio 5 java multithreading caching ignite
我计划从多个线程同时加载缓存.最简单的形式是:
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);
});
}
Run Code Online (Sandbox Code Playgroud)
这样做是否安全?我阅读了该方法的文档:
将指定的值与缓存中的指定键相关联.如果Cache先前包含键的映射,则旧值将替换为指定的值.(当且仅当c.containsKey(k)返回true时,缓存c才包含密钥k的映射.)
关于线程安全没有任何说法.IgniteCache同时放入是否安全?
答案是肯定的,所有Ignite API都是线程安全的,可以从多个线程同时使用.
但是,进行单独放置并不是进行数据加载的有效方法,因此有更好的技术.有关详细信息,请参阅此页面:https://apacheignite.readme.io/docs/data-loading
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |