Ниже приведены два подхода, создающих экземпляр concurrentHashMap. Я понимаю, что подход 2 является потокобезопасным, но не подходит 1. Но я разговариваю с коллегой и с вами, поскольку оба создают экземпляр concurrentHashMap не должен приближаться к 1 также потокобезопасным тоже?Безопасность потоков с помощью карты и concurrentHashMap
Подход 1:
private static final Map<key, value> map = new ConcurrentHashMap<key, value>();
подход 2:
private static final ConcurrentHashMap<key, value> concurrentHashMap = new ConcurrentHashMap<key, value>();
Оценил любые разъяснения по этому вопросу.
Это в основном та же разница, что и между словами «вот мой сын, Джон» и «вот мой ребенок, Джон». Как бы вы ни ссылались на Джона, я всегда Джон. Это базовый полиморфизм, и вы должны определенно понять это, прежде чем даже думать о многопоточности и безопасности потоков, что намного сложнее. –
Вы также можете использовать 'Collections.synchronizedMap (map)'. – Hannes