Repo for thredaing homework on 2019/2020 C++ course
Напишите программу, которая будет считывать многопоточно считать сумму элементов в std::vector
. Протестируйте на 1000 элементах с 10ью потоками: каждый поток должен брать равный диапазон элементов, считать сумму элементов и сохранять эту сумму в общий вектор. Далее поток main()
должен просуммировать частичные суммы.
Напишите программу, которая будет считывать многопоточно векторно перемножать два алгебраических вектора (элементы хранятся std::vector
) в правом базисе. Протестируйте на 1000 элементах с 10ью потоками: каждый поток должен брать равный диапазон элементов, считать поэлементно произведение двух векторов и сохранять это произведение в общий вектор. Далее поток main()
должен взять общий вектор и вычислить его длину. Вычисление длины должно быть тоже реализовано многопоточно (оно включает в себя суммирование элементов вектора).
Выполните Task 2, создавая 10 потоков только один раз в начале программы. То есть, потоки, которые вычисляли поэлементное произвдение, должны дождаться окончания всех произведений и только потом начинать вычисление сумм. Вам понадобится notify_all()
.