From ac3fdeafcafe1e96b2aff3e61910260ba930eef7 Mon Sep 17 00:00:00 2001 From: Looly Date: Sat, 24 Jun 2023 19:41:24 +0800 Subject: [PATCH] add SoftConcurrentMap --- .../hutool/core/map/SoftConcurrentMap.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 hutool-core/src/main/java/org/dromara/hutool/core/map/SoftConcurrentMap.java diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/map/SoftConcurrentMap.java b/hutool-core/src/main/java/org/dromara/hutool/core/map/SoftConcurrentMap.java new file mode 100755 index 000000000..9a8eb9dec --- /dev/null +++ b/hutool-core/src/main/java/org/dromara/hutool/core/map/SoftConcurrentMap.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2023 looly(loolly@aliyun.com) + * Hutool is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * http://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +package org.dromara.hutool.core.map; + +import org.dromara.hutool.core.util.ReferenceUtil; + +import java.lang.ref.Reference; +import java.util.concurrent.ConcurrentMap; + +/** + * 线程安全的SoftMap实现
+ * + * @param 键类型 + * @param 值类型 + * @author looly + * @since 6.0.0 + */ +public class SoftConcurrentMap extends ReferenceConcurrentMap { + private static final long serialVersionUID = 1L; + + /** + * 构造 + */ + public SoftConcurrentMap() { + this(new SafeConcurrentHashMap<>()); + } + + /** + * 构造 + * + * @param raw {@link ConcurrentMap}实现 + */ + public SoftConcurrentMap(final ConcurrentMap, V> raw) { + super(raw, ReferenceUtil.ReferenceType.SOFT); + } +}