Допустим, у меня есть объект threadWork
инициализируется как:
vector< vector<myType> > threadWork(N_THREADS, vector<myType>());
Я тогда развернуть N_THREADS
потоки, каждый из которых выполняет запись через vector::push_back()
с отдельным элементом (его собственным vector<myType>
объект) из threadWork
,
Затем один поток вызывает vector::clear()
на своем элементе threadWork
,
Это делает недействительными записи других потоков в их элемент?
я могу vector::clear()
называется на один элемент threadWork
изменять
распределение памяти других элементов threadWork
,
так, что поток может писать в неправильные адреса в результате?
Это совершенно нормально. Изменение элемента внешнего вектора никак не влияет на другие элементы.
Других решений пока нет …