Безопасна ли е векторната нишка в Java?
Безопасна ли е векторната нишка в Java?

Видео: Безопасна ли е векторната нишка в Java?

Видео: Безопасна ли е векторната нишка в Java?
Видео: №1053 В дороге 🚗 ХОТЯТ НАВРЕДИТЬ ПРИВИВКАМИ и ПОСТАВИТЬ ЧИПЫ 💉 НАШЕ мнение о ВАКЦИНАЦИИ 2024, Може
Anonim

вектор всички методи са синхронизирани. Така че го използвате от няколко нишки е " безопасно ". Трябва да синхронизирате само ако имате нужда от процес четене-оценка-запис да бъде атомен. Синхронизирането на вашите собствени методи не прави непременно вашия код конец - безопасно за тези сценарии.

Имайки предвид това, безопасен ли е списъчните нишки в Java?

Всъщност всички колекционни класове (с изключение на Vector и Hashtable) в java . util пакет не са конец - безопасно . Ето защо новото колекции ( Списък , Set, Map и т.н.) не предоставят никакъв контрол на едновременността, за да осигурят максимална производителност в еднонишкови приложения.

По същия начин, коя колекция е нишка безопасна в Java? А конец - безопасно class е клас, който гарантира вътрешното състояние на класа, както и върнатите стойности от методи, са правилни, докато се извиква едновременно от множество нишки . В колекция класове, които са конец - безопасно в Java са стек, вектор, свойства, хештаблица и др.

Като се има предвид това, безопасна ли е нишката на Java HashSet?

HashSet не е безопасен за нишки HashSet в Java не е безопасен за конци тъй като не е синхронизиран по подразбиране. Ако използвате HashSet в многонишкова среда, където се осъществява достъп от множество нишки едновременно и структурно модифициран дори от един единствен конец тогава трябва да се синхронизира външно.

Кое е потокобезопасен ArrayList или вектор?

вектор е бавно, както е безопасен за конци . В сравнение ArrayList е бърз, тъй като не е синхронизиран. Така в ArrayList две или повече нишки може да има достъп до кода по едно и също време, докато вектор е ограничен до един конец на време. А вектор по подразбиране удвоява размера на своя масив.

Препоръчано: