Я на самом деле проверил бы Сервер Основы Команды. Это - очень хорошая система, которая может масштабироваться, и, вероятно, легко пройти внутренний это отделы. Я знаю, что это - центральный Windows, но можно использовать дополнения для Linux/Mac также, и можно использовать прокси для некоторых сайтов с медленными соединениями.
И я думал бы о наличии 2 систем в крупной организации, оно может помочь получению лучшего в некоторых отдельных случаях.
Эти два класса различаются по-разному.
ConcurrentHashMap не гарантирует * время выполнения своих операций в рамках своего контракта. Он также позволяет настраивать определенные коэффициенты нагрузки (грубо говоря, количество потоков, одновременно изменяющих его).
ConcurrentSkipListMap , с другой стороны, гарантирует среднюю производительность O (log (n)) для широкого спектра операций. Он также не поддерживает настройку ради параллелизма. ConcurrentSkipListMap
также имеет ряд операций, которых нет в ConcurrentHashMap
: потолокEntry / Key, floorEntry / Key и т. Д. Он также поддерживает порядок сортировки, который в противном случае пришлось бы рассчитывать за значительные деньги), если вы использовали ConcurrentHashMap
.
В основном, разные реализации предоставляются для разных вариантов использования. Если вам нужно быстрое добавление пары ключ / значение и быстрый поиск одного ключа, используйте HashMap
. Если вам нужен более быстрый обход по порядку и вы можете позволить себе дополнительные затраты на вставку, используйте SkipListMap
.
* Хотя я ожидаю, что реализация примерно соответствует общим гарантиям хэш-карты O (1) вставка / поиск; игнорирование повторного хеширования
См. Список пропуска для определения структуры данных.
ConcurrentSkipListMap
хранит карту
в естественном порядке ее ключей (или в каком-либо другом порядке ключей, который вы определяете). Таким образом, get
/ put
/ содержит
операций медленнее, чем HashMap
, но для компенсации этого он поддерживает Интерфейсы SortedMap
, NavigableMap
и ConcurrentNavigableMap
.