Middle
Java-ში რომელი მონაცემთა სტრუქტურები არის სინქრონიზებული და რომელი არა?
sobes.tech AI
პასუხი AI-სგან
Java-ში ზოგი მონაცემთა სტრუქტურა სინქრონიზირებულია (თრედ-უსაფრთხო), ზოგი — არა.
სინქრონიზირებული:
Vector— სინქრონიზირებული ანალოგიArrayList-ის.Hashtable— სინქრონიზირებული ანალოგიHashMap-ის.Stack— მემკვიდრეობით იღებსVector-დან, ამიტომაც არის სინქრონიზირებული.- კოლექციები, რომლებიც დაფუთულია
Collections.synchronizedList(),synchronizedMap()და სხვა. - კლასები
java.util.concurrentპაკეტიდან, მაგალითად,ConcurrentHashMap,CopyOnWriteArrayList.
არასინქრონიზირებული:
ArrayListLinkedListHashMapHashSet
თუ გსურთ არასინქრონიზირებული კოლექციის გამოყენება მრავალთრედულ გარემოში, შეგიძლიათ მას დააფუთოთ სინქრონიზირებული მეთოდებით ან გამოიყენოთ სპეციალიზებული კლასები java.util.concurrent-დან.
მაგალითი:
List<String> list = Collections.synchronizedList(new ArrayList<>());