Добрый день! Пытаюсь вникнуть в потоки и не могу понять несколько вещей:
Я понимаю, что упускаю какую-то явную и очень важную деталь, объясните, пожалуйста, какую? Спасибо!
Ну вот допустим у вас задача умножить на 2 каждое число в массиве из 1000 элементов. Вы создаете поток, давая ему на обработку элементы с индексами 1...500, а в главном потоке начинаете обрабатываете элементы с индексами 501...1000. После того, как главный поток закончил обрабатывать свою часть задания, он вызывает join и начинает ждать второй поток (который к этому моменту тоже уже наверняка закончил обрабатывать свою часть задания). Так вот, выходит что пока первый поток обрабатывал свою половину задания, второй поток - обрабатывал вторую, т.е. два потока работали параллельно. Суть в том, что потоки большую часть времени проводят в выполнении заданий, а не в ожидании завершения чего-то там. Если же во второй поток отправить на обработку все 1000 элементов, и в главном сразу начать его ждать, то никакого параллелизма не будет.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости