दस्तावेज़ीकरण के अनुसार। यह परिवर्तनशील संग्रह है कि हो सकता है सुरक्षित रूप से अनुप्रयोगों multithreading में प्रयोग किया जाता है।
एक समवर्ती हैश trie या TrieMap एक हैश सरणी के एक concurrent thread-safe lock-free
कार्यान्वयन मैप किया trie है। इसका उपयोग समवर्ती मानचित्र अमूर्तता को लागू करने के लिए किया जाता है। इसमें particularly scalable concurrent
डालें और संचालन हटाएं और memory-efficient
है। यह ओ (1), परमाणु, लॉक-फ्री स्नैपशॉट का समर्थन करता है जिसका उपयोग रैखिक करने योग्य लॉक-फ्री आकार, इटरेटर और स्पष्ट संचालन को लागू करने के लिए किया जाता है। (आलसी) स्नैपशॉट का मूल्यांकन करने की लागत बाद के अपडेट में वितरित की गई है, इस प्रकार स्नैपशॉट मूल्यांकन क्षैतिज स्केलेबल बना रहा है।
जानकारी के लिए, देखें: http://lampwww.epfl.ch/~prokopec/ctries-snapshot.pdf
यह भी caching
के लिए वास्तव में अच्छा एपीआई है। तो उदाहरण के लिए आपको अलग-अलग संख्या के फैक्टोरियल की गणना करना होगा और कभी-कभी इन परिणामों का पुन: उपयोग करना होगा।
object o {
val factorialsCache = new TrieMap[Int, Int]()
def factorial(num: Int) = ??? // really heavy operations
def doWorkWithFuctorial(num: Int) = {
val factRes = factorialsCache.getOrElseUpdate(num, {
// we do not want to invoke it very often
factorial(num)
// this function will be executed only if there are no records in Map for such key
})
// start do some work `withfactRes`
factRes
}
}
वेतन ध्यान - ऊपर लिखने के संचालन के लिए उपयोग वैश्विक राज्य (कैश) समारोह है, लेकिन यह समवर्ती धागे में इसका इस्तेमाल करने के लिए पूरी तरह सुरक्षित है। आप कोई डेटा खोले नहींंगे।
आपका मतलब scala.collection.concurrent.TrieMap है? –