Är Vector thread säker i Java?
Är Vector thread säker i Java?

Video: Är Vector thread säker i Java?

Video: Är Vector thread säker i Java?
Video: Java On Conference 2022, JDK 19, Spring Framework 6 and Spring Boot 3 [MJC News #11] 2024, Maj
Anonim

Vektor metoder är alla synkroniserade. Så använder det från flera trådar är " säker ". Du behöver bara synkronisera om du behöver en läs-utvärdera-skrivprocess för att vara atomär. Att synkronisera dina egna metoder gör inte nödvändigtvis din kod tråd - säker för dessa scenarier.

Med tanke på detta, är listtråden säker i Java?

Faktum är att alla samlingsklasser (förutom Vector och Hashtable) i java . util-paket är det inte tråd - säker . Det är därför det nya samlingar ( Lista , Set, Map, etc) ger ingen samtidighetskontroll alls för att ge maximal prestanda i enkeltrådade applikationer.

På samma sätt, vilken samling är trådsäker i Java? A tråd - säker klass är en klass som garanterar klassens interna tillstånd såväl som returnerade värden från metoder, är korrekta medan de anropas samtidigt från flera trådar . De samling klasser som är tråd - säkert i Java är Stack, Vector, Properties, Hashtable, etc.

Med tanke på detta, är Java HashSet-tråden säker?

HashSet är inte trådsäker HashSet i Java är inte trådsäker eftersom det inte är synkroniserat som standard. Om du använder HashSet i en flertrådig miljö där den nås av flera trådar samtidigt och strukturellt modifierad av även en enda tråd då måste den synkroniseras externt.

Vilket är trådsäkert ArrayList eller vektor?

Vektor är långsam som den är trådsäker . I jämförelse ArrayList är snabb eftersom den inte är synkroniserad. Alltså in ArrayList två eller flera trådar kan komma åt koden samtidigt, medan Vektor är begränsad till en tråd vid en tid. A Vektor fördubblar sin arrays storlek som standard.

Rekommenderad: