If you are not synchronizing between readers and writers, there is a possibility of data corruption.
So the answer in general is NO.
To requote
Multiple readers are safe. Multiple threads may simultaneously read
the contents of a single container, and this will work correctly.
Naturally, there must not be any writers acting on the container
during the reads.
Depending on the environment, you can use different concurrent containers. For example, MSDN supports concurrent queue And there are boost libraries which provides lock free containers as well.