Vettore STL e sicurezza del filo

Diciamo che ho un vettore di elementi N, ma fino a n elementi di questo vettore hanno dati significativi. Un thread di aggiornamento aggiorna l’ennesimo n + 1 ° elemento (quindi imposta n = n + 1), controlla anche se n è troppo vicino a N e chiama vector :: ridimensiona (N + M) se necessario. Dopo l’aggiornamento, il thread richiama più thread figlio per leggere fino all’ennesimo dati e fare alcuni calcoli.

È garantito che i thread figlio non cambiano o cancellano mai dati, (infatti nessun dato viene cancellato come mai) e il programma di aggiornamento chiama i bambini subito dopo il completamento dell’aggiornamento.

Finora non si è verificato alcun problema, ma desidero chiedere se si può verificare un problema durante la riallocazione del vettore in un blocco di memoria più grande, se ci sono alcuni thread di lavoro figlio lasciati dall’aggiornamento precedente.
O è sicuro usare il vettore, dato che non è thread-safe, in un caso multithreaded?

EDIT: Poiché solo l’inserimento ha luogo quando il programma di aggiornamento chiama vector :: resize (N + M, 0), ci sono possibili soluzioni al mio problema? A causa delle grandi prestazioni del vettore STL, non sono disposto a sostituirlo con un vettore bloccabile o in questo caso ci sono vettori performanti, noti e senza blocco?