Is vektordraad veilig in Java?
Is vektordraad veilig in Java?

Video: Is vektordraad veilig in Java?

Video: Is vektordraad veilig in Java?
Video: The Art Of Clean Code by Victor Rentea 2024, Desember
Anonim

Vektor metodes is almal gesinchroniseer. Gebruik dit dus uit verskeie drade is" veilig ". Jy hoef net te sinchroniseer as jy 'n lees-evalueer-skryf-proses nodig het om atoom te wees. Om jou eie metodes te sinchroniseer maak nie noodwendig jou kode draad - veilig vir daardie scenario's.

As u dit in die oog hou, is lysdraad veilig in Java?

Trouens, alle versamelingsklasse (behalwe Vector en Hashtable) in die java . util-pakket is nie draad - veilig . Dit is hoekom die nuwe versamelings ( Lys , Stel, Kaart, ens.) bied glad geen gelyktydige beheer om maksimum werkverrigting in enkeldraadtoepassings te verskaf nie.

Net so, watter versameling is draad veilig in Java? A draad - veilig klas is 'n klas wat waarborg dat die interne toestand van die klas sowel as waardes van metodes wat teruggegee word, korrek is terwyl dit gelyktydig van veelvuldige opgeroep word drade . Die versameling klasse wat is draad - veilig in Java is Stack, Vector, Properties, Hashtable, ens.

As u dit in ag neem, is Java HashSet-draad veilig?

HashSet is nie draad veilige HashSet in Java is nie draad veilig aangesien dit nie by verstek gesinchroniseer is nie. As jy gebruik HashSet in 'n multi-draad omgewing waar dit deur veelvuldige toegang verkry word drade gelyktydig en struktureel ook deur selfs 'n enkele verander draad dan moet dit ekstern gesinchroniseer word.

Wat is draadveilig ArrayList of vektor?

Vektor is stadig soos dit is draad veilig . In vergelyking Skikkingslys is vinnig aangesien dit nie gesinchroniseer is nie. Dus in Skikkingslys twee of meer drade kan terselfdertyd toegang tot die kode kry, terwyl Vektor is beperk tot een draad op 'n slag. A Vektor verstek die verdubbeling van die grootte van sy skikking.

Aanbeveel: