1
키가 약한 스칼라에 Map
동시 또는 스레드 안전 Map
을 얻으려면 어떻게해야합니까? 예를 들어 collection.mutable.WeakHashMap
이지만 동시 액세스/업데이트를 지원하지 않는 것 같습니다. 싼 해결책은 일반적인 Java 동기화 된 잠금 뒤에 숨기는 것입니다.스레드 안전 취약 키 해시도
키가 약한 스칼라에 Map
동시 또는 스레드 안전 Map
을 얻으려면 어떻게해야합니까? 예를 들어 collection.mutable.WeakHashMap
이지만 동시 액세스/업데이트를 지원하지 않는 것 같습니다. 싼 해결책은 일반적인 Java 동기화 된 잠금 뒤에 숨기는 것입니다.스레드 안전 취약 키 해시도
구아바의 MapMaker을 사용하십시오.
import java.util.concurrent.ConcurrentMap
val timers: ConcurrentMap[Request, Stopwatch] =
new MapMaker().concurrencyLevel(4).weakKeys.makeMap
이것은 물론, 자바지도,하지만 당신은 쉽게 스칼라지도로 포장 할 수있다 :
import java.{util => ju}
import scala.collection.JavaConverters._
import scala.collection.mutable
val javaMap: ju.Map[String,String] = ...
val scalaMap: mutable.Map[String,String] = javaMap.asScala
해당 문서의 예는 (번역 스칼라에) 필요한 것을 정확히 보여줍니다
괜찮 았지만 전체 타사 라이브러리에서 드로잉하는 것보다 무거운 것이 있습니까? –
@ 0__ _concurrent_ (동기화되지 않은 상태)와 약한 키가있는 맵을 원한다면 표준 라이브러리에 그런 구현이 존재하지 않는다고 생각합니다. – ghik