在日常C++開發,少不了和STL,多線程打交道,那么在多線程下,哪些容器時線程安全的,那些不是?
好,這里就舉一個簡單的例子,我們先看看vector容器,相信你能看出一些問題:
#include <iostream>
#include <string>
#include <algorithm>
#include <thread>
#include <vector>using namespace std;
vector<int> vec;
void myprint(void) {while(1){for(auto it = vec.begin(); it != vec.end(); it++){*it = 65535;cout << "輸出:"<< *it<< endl;}vec.push_back(1);vec.push_back(1);vec.push_back(1);cout<<"插入數據"<<endl;
// sleep(1);}return;}
int main()
{vec.push_back(0);thread my_threads(myprint);while(true){vec.push_back(1);vec.clear()