Многопоточность. Если я использую семафор, могу ли я создать много потоков при запуске или у меня должно быть только несколько?
У меня есть вектор точек. Длина вектора равна K. K = 100. Но, возможно, это значение увеличится. Каждая точка является n-мерным вектором. У меня есть массив указателей на функции. Размер 10. И я должен вычислить каждую функцию для каждой точки. И сохраните его в текстовом файле. Для этого мне нужно использовать многопоточность.
Я новичок в распараллеливании.
У меня 4 ядра. Поэтому я хочу запустить 4 потока одновременно. Я знаю, что есть семафор с counter = 4. Все функции не имеют общих переменных. Я думаю, что они разделяют только TXT-файл.
Это плохая практика для создания на первых 100 потоков? И после этого для использования семафора со счетчиком = 4
4 потока работают одновременно, 96 ожидают. После того, как один из них сделает все, снова будет 4 потока, но 95 ожидают. Занимают ли ожидающие потоки память или другие ресурсы?
Или я должен создавать новый поток только после завершения одного из 4 запущенных потоков?