A mund të përdorim hashmap në mjedis me shumë fije?

A mund të përdorim hashmap në mjedis me shumë fije?
A mund të përdorim hashmap në mjedis me shumë fije?
Anonim

Çfarë nuk shkon me përdorimin e HashMap në mjedis me shumë fije? … Është problem nëse në të njëjtin shembull HashMap po shtohen tema të shumta pa u sinkronizuar. Edhe nëse vetëm 1 fill po modifikon një HashMap dhe temat e tjera po lexojnë nga e njëjta hartë pa sinkronizim, do të hasni në probleme.

A mund të përdorni një HashMap në një mjedis me shumë fije?

Duhet të siguroheni: Të gjitha përditësimet në HashMap të përfundojnë përpara se temat të instantohen dhe filli që krijon hartën gjithashtu t'i forcojë temat. Temat po përdorin vetëm HashMap në modalitetin vetëm për lexim – ose merrni ose përsëriten pa hequr. Nuk ka tema që përditësojnë hartën.

Pse HashMap nuk duhet të përdoret në mjedis me shumë fije, a mund të shkaktojë gjithashtu një lak të pafund?

Kapaciteti i paracaktuar i HashMap është 16 dhe faktori i ngarkesës është 0,75, që do të thotë se HashMap do të dyfishojë kapacitetin e tij kur çifti i 12-të Key-Value hyn në hartë (160,75=12). Kur 2 thread përpiqen të hyjnë në HashMap në të njëjtën kohë, atëherë mund të hasni një lak të pafund. Tema 1 dhe Tema 2 përpiqen të vendosin çiftin e 12-të çelës-vlerë.

A është HashMap i sigurt për të marrë lidhjen?

HashMap nuk është i sinkronizuar. Nuk është i sigurt për temat dhe nuk mund të ndahet midis shumë temave pa kodin e duhur të sinkronizimit ndërsa Hashtable është i sinkronizuar.

Çfarë është më e përshtatshme për multithreadedmjedis?

Përgjigjja është "ConcurrentHashMap"

Recommended: