Что происходит при вызове программы? Допустим программа получает данные на входе и отдает не выходе. Программа на с++(не сильно важно, но для примера лучше язык без прослойки). Ничего не ждет, выполняется так быстро как может. Программа часть большой системы и используется для вычеслений, вызываясь другими программами (очень часто). Время вычисления около 5000 мс.
Что происходит, когда программа вызывается ?
Насколько быстрая эта операция ?
Возможно лучше повесить программу и ждать, пока будут приходит данные? Примерно так:while(true) {
cin >> in
// вычисление
cout << out
}
А если во время одного вычисления еще нескольким программам понадобится вызов данной ? В итоге выстроится очередь и будут очень долго ждать.
Тогда возможно нужно запустить программу в нескольких экземплярах ?( если алгоритм однопоточный).
А если удастся разбить на треды, то лучше разбивать или запускать несколько экземпляров ?

21 Авг 2019 в 06:50
196 +1
0
Ответы
1

Когда программа вызывается, происходит создание нового процесса, который получает данные на входе, выполняет вычисления и выводит результат. Время вызова программы зависит от загруженности системы и скорости выполнения кода программы.

Если программа используется часто и при этом время её выполнения около 5000 мс, то возможно имеет смысл разделить эту программу на несколько потоков (тредов) для параллельного выполнения. Это может значительно увеличить производительность системы и сократить время ожидания.

Повесить программу на цикл while и ждать ввода данных вряд ли является оптимальным решением, так как это приведет к блокировке цикла и ожиданию данных, что может замедлить общую работу программы.

Количество экземпляров программы, которое следует запускать, зависит от специфики задачи и ресурсов системы. Если алгоритм однопоточный, то имеет смысл запустить несколько экземпляров программы для параллельного выполнения, особенно если существует возможность разделения задачи на независимые подзадачи.

Если удалось разбить программу на несколько тредов, то в этом случае лучше использовать многопоточность для параллельного выполнения задачи. Разбиение задачи на треды позволит эффективнее использовать ресурсы процессора и ускорит выполнение программы.

20 Апр в 13:12
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 852 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир