Junior — Middle
Ҳамаи коллексияҳои стандартии Java бехатариро ҳангоми кор бо чандирӣ таъмин мекунанд?
sobes.tech AI
Ҷавоб аз AI
Не, ҳама стандартӣ колексияҳои Java бехатар барои ҷараён нестанд. Масалан, колексияҳое монанди ArrayList, HashMap, HashSet ҳифз намекунанд, вақте ки онҳо дар як вақт аз чанд ҷараён истифода мешаванд.
Агар чанд ҷараён ин колексияҳоро бидуни синхронӣ тағир диҳанд ё бихонанд, хатогиҳо ва рафторҳои номуайян метавонанд рӯй диҳанд.
Барои кор бо бехатарии ҷараёнҳо, метавон истифода бурд:
- Колексияҳо аз пакети
java.util.concurrent, мислиConcurrentHashMap,CopyOnWriteArrayList - Қуттиҳо аз
Collections.synchronizedList(),Collections.synchronizedMap()ва ғайра, ки синхронӣ илова мекунанд
Маслиҳат барои сохтани рӯйхати бехатар барои ҷараёнҳо:
List<String> syncList = Collections.synchronizedList(new ArrayList<>());
Бинобар ин, ҳангоми кор бо чанд ҷараён, бояд колексияҳои махсуси бехатар барои ҷараёнҳоро интихоб кунед ё худатон синхронӣ таъмин кунед.