Ligtas ba ang Vector thread sa Java?
Ligtas ba ang Vector thread sa Java?

Video: Ligtas ba ang Vector thread sa Java?

Video: Ligtas ba ang Vector thread sa Java?
Video: Multithreading in Java Explained in 10 Minutes 2024, Mayo
Anonim

Vector lahat ng mga pamamaraan ay naka-synchronize. Kaya ginagamit ito mula sa maramihang mga thread ay " ligtas ". Kailangan mo lang mag-synchronize kung kailangan mo ng read-evaluate-write na proseso para maging atomic. Ang pag-synchronize ng sarili mong mga pamamaraan ay hindi nangangahulugang gagawin mo ang iyong code thread - ligtas para sa mga senaryo na iyon.

Kapag pinapanatili itong nakikita, ligtas ba ang list thread sa Java?

Sa katunayan, lahat ng klase ng koleksyon (maliban sa Vector at Hashtable) sa java . util package ay hindi thread - ligtas . Kaya naman ang bago mga koleksyon ( Listahan , Set, Map, atbp) ay hindi nagbibigay ng concurrency control sa lahat upang magbigay ng maximum na performance sa mga single-threaded na application.

Katulad nito, aling koleksyon ang ligtas sa thread sa Java? A thread - ligtas class ay isang klase na ginagarantiyahan ang panloob na estado ng klase pati na rin ang mga ibinalik na halaga mula sa mga pamamaraan, ay tama habang hinihingi nang sabay-sabay mula sa maramihang mga thread . Ang koleksyon mga klase na thread - ligtas sa Java ay Stack, Vector, Properties, Hashtable, atbp.

Kung isasaalang-alang ito, ligtas ba ang thread ng Java HashSet?

HashSet ay hindi ligtas ang thread na HashSet sa Java ay hindi ligtas ang thread dahil hindi ito naka-synchronize bilang default. Kung ikaw ay gumagamit HashSet sa isang multi-threaded na kapaligiran kung saan ito ay naa-access ng maramihan mga thread kasabay at istruktural na binago din ng kahit isang solong thread pagkatapos ay dapat itong i-synchronize sa labas.

Alin ang thread safe ArrayList o vector?

Vector ay mabagal tulad nito ligtas ang thread . Sa paghahambing ArrayList ay mabilis dahil hindi ito naka-synchronize. Kaya sa ArrayList dalawa o higit pa mga thread maaaring ma-access ang code sa parehong oras, habang Vector ay limitado sa isa thread sa isang pagkakataon. A Vector default sa pagdodoble ng laki ng array nito.

Inirerekumendang: