Вы правы приблизительно HashTable
, можно забыть об этом.
Ваша статья упоминает то, что, в то время как HashTable и синхронизируемый класс обертки обеспечивают основную потокобезопасность, только позволяя один поток за один раз получить доступ к карте, это не 'истинная' потокобезопасность, так как много составных операций все еще требуют дополнительной синхронизации, например:
synchronized (records) {
Record rec = records.get(id);
if (rec == null) {
rec = new Record(id);
records.put(id, rec);
}
return rec;
}
Однако не думают, что ConcurrentHashMap
простая альтернатива для HashMap
с типичным synchronized
блок как показано выше. Читайте этот статья для понимания ее запутанности лучше.
У вас есть shutil.py
в вашем стандартном дистрибутиве Python (например, в Ubuntu мой находится под /usr/lib/python2.6
; Windows может быть C: \ Python26 \ lib
?). Длина функции copytree составляет всего 38 строк (34, если вы не учитываете комментарии), а в конце строки документации явно указано:
XXX Рассмотрите этот пример кода, а не основной инструмент.
Так что на самом деле самый простой способ было бы изменить / добавить пару строк в copytree или найти другую библиотеку, если честно.