Я новичок в C ++.Я написал программу для извлечения данных из одной БД и сохранения этих данных в другой БД.Я просто хочу добавить несколько потоков, чтобы ускорить процесс.Я надеюсь сделать это двумя способами.
- Извлечение данных из первой БД и сохранение этих данных в памяти.(В этом случае мне нужны эти данные в двух std :: vector типах)
- при извлечении данных из базы данных, если размер вектора больше 10000 необходимо запустить два потока и запустить их, получить данные из двух векторов (отдельно) и сохранить эти данные во второй базе данных.
Рассмотрим приведенный ниже пример.Это простой код для демонстрации вышеуказанного сценария.Есть цикл for с огромными итерациями.Мне нужно запустить два потока для этого кода, чтобы извлечь данные из векторов dataOne и dataTwo (отдельные потоки для обоих) и сохранить эти данные в векторах dataThree и dataFour, когда i = 10000 .
с использованием пространства имен std;
int main(){
std::vector<std::vector<int>> dataOne;
std::vector<std::vector<int>> dataTwo;
std::vector<std::vector<int>> dataThree;
std::vector<std::vector<int>> dataFour;
for(int i=0; i < 10000000; i++){
std::vector<int> temp = {1,2,3};
dataOne.push_back(temp); //store data in vector-one
std::vector<int> temp2 = {3,4,5};
dataTwo.push_back(temp2); //store data in vector-two
}
}
при i = 10000 должно быть запущено три потока,
Thread one - получение данных из dataOneвектор и сохранение в dataThree
Thread два - получение данных из dataTwo и сохранение в dataFour
Thread main - обработка цикла for вОсновная функция
Кто-нибудь может помочь мне решить эту проблему?