Исходные данные: количество потоков N и общее количество слагаемых COUNT.
Принцип работы: Каждый порожденный поток, кроме последнего, обрабатывает (COUNT div N) слагаемых. Последний поток обрабатывает (COUNT div N)+(COUNT mod N) слагаемых. Например, если N=2 и COUNT=5, то первый поток будет обрабатывать 2 первых слагаемых (4 и 4/3), второй поток - 3 последних слагаемых (4/5, -4/7 и 4/9).
Результатами работы потоки заполняют глобальный массив, содержимое которого, по окончании работы потоков, суммирует основной поток. Аналогичным образом потоки заполняют глобальный массив временем своей работы.
Выходные данные: 1)Результат рассчета, 2)время работы и результаты рассчета каждого потока, 3) время работы основной программы (в миллисекундах).
Разработать и внедрить в предыдущую программу управляющий поток (диспетчер),
который будет создавать, запускать,
дожидаться завершения параллельных потоков,
по окончании работы - уничтожать параллельные потоки.
Каждый рабочий поток по окончании подсчета должен корректировать своим результатом промежуточное значение числа Pi
в глобальной переменной.
Основной поток должен ожидать завершения работы диспетчера и раз в секунду выводить
количество миллисекунд, прошедших с момента запуска программы. По окончании
работы диспетчера - вывести время работы каждого потока (в миллисекундах) и окончательное значение числа Pi
(для решения рекомендуется использовать объект синхронизации Событие с таймаутом).