ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
1056841 Топик полностью
fk0, легенда (30.11.2020 22:19, просмотров: 243) ответил йцyкeн на Ну мы же не про Си, а про плюсплюс. Там в STL сплошные new и delete. И что, можно использовать std::vector без мутексов только в одном потоке?
new -- это вызов operator new(sizeof(T)) и последующий вызов Т(...) delete -- вызов ~T() и вызов operator delete(). Для массивов ещё добавляется пробежка по всем элементам массива и вызов T() или ~T() для каждого. Обычно функции operator new() и operator delete() -- этот тот же malloc() и free()... Так что в менеджменте памяти ничего нового. Конечно нельзя вектор без мьютекса использовать параллельно в разных потоках. Впрочем это касается любого класса вообще. Любой 

структуры данных вообще. Т.е. она имеет смысл только целостно, а не когда её параллельно меняют из двух разных мест в коде.

[ZX]