многопоточность в программе, которая только сканирует новый файл и загружает его, чем загружает в другое место - PullRequest
0 голосов
/ 06 марта 2020

Например, у меня есть одноядерный компьютер. Моя программа должна сканировать веб-сайт и искать новый файл. Всякий раз, когда он находит новый файл, он загружает его и загружает в другое место.

Теперь у меня есть два варианта реализации моей программы:

Вариант 1: Создать одну ветку для сканирования веб-сайта , Этот поток будет запускаться каждую секунду. Всякий раз, когда он находит новый файл, он порождает новый поток для загрузки файла и загрузки его. (например, если он сканирует 5 новых файлов, он порождает 5 потоков + 1 исходную ветку сканера)

Вариант 2. Просто создайте 2 потока, 1 для сканирования, другой для загрузки и выгрузки. Другие файлы будут помещены в очередь.

Какой вариант более целесообразен? На мой взгляд, я думаю, что вариант 2 имеет больше смысла, потому что онлайн-поток 1 может использовать файл, а inte rnet i / o один раз, куча потоков только часто вызывает переключение контекста и создает накладные расходы. Я прав?

...