Как я могу ждать триггера или проверить завершение работы с работы?
У меня есть 3 работы (работа A, работа B и работа C). Задание A запускает задание C. Я хочу, чтобы задание C дождалось завершения задания B и выполнило задание.
Можем ли мы ждать завершения работы?
Я читал об опросе. Что оно делает? Может ли опрос помочь мне?
1 ответ
Я предполагаю, что под опросом вы имеете в виду "заняты ожидания". Это может помочь вам, но обычно считается неэффективным решением.
Но что такое опрос? (считается занятым ожиданием)
аналогия
Ну, представьте, что вы купили товар в Amazon или в другом интернет-магазине. Опрос - это когда вы сидите дома и каждые 5 секунд звоните в Amazon, чтобы узнать, поступил ли уже ваш продукт.
Формальное определение
Вы можете проверить более формальное определение в вики. Цитировать:
Опрос иногда используется как синоним опроса "занято". В этой ситуации, когда требуется операция ввода-вывода, компьютер ничего не делает, кроме проверки состояния устройства ввода-вывода, пока оно не будет готово, и в этот момент к устройству осуществляется доступ. Другими словами, компьютер ждет, пока устройство не будет готово. Опрос также относится к ситуации, когда устройство неоднократно проверяется на готовность, и если это не так, компьютер возвращается к другой задаче. Хотя это и не такая трата циклов ЦП, как ожидание занятости, это, как правило, не так эффективно, как альтернатива опросу, управляемому прерыванием ввода-вывода.
Пути улучшения
Таким образом, опрос "занятое ожидание" означает, что вы остаетесь дома, ожидаете доставщика и каждые 5 секунд звоните ему, чтобы проверить его статус. Это пустая трата времени, если у вас есть работа или домашние дела. Вы можете облегчить это, звоня парню каждые 5 секунд, но вместо того, чтобы сидеть и ждать, чтобы позвонить ему снова, вы можете сделать несколько дел по дому. Таким образом, вы делаете какую-то работу, звоните парню, а затем возвращаетесь. Каждые пять секунд.
Несмотря на то, что этот вариант лучше, чем настоящее ожидание, занятое ожиданием, все равно громоздко прерывать ваши действия каждые 5 секунд, чтобы проверить работника службы доставки.
альтернатива
Истинная альтернатива здесь, как объясняет вики, события, управляемые прерываниями. Продолжая мою аналогию, события, управляемые прерываниями, означают, что вы покупаете что-то в Интернете, а затем вы идете на работу или в школу или выполняете свои обязанности. Поскольку у вас есть мобильный телефон, а у курьера также есть ваш номер, когда он прибывает, он звонит вам, и вы можете забрать ваши вещи.
Сложность в том, чтобы убедиться, что вы правильно кодируете свои мобильные телефоны, а это означает, что вы готовите задания A, B и C к прерыванию событиями и реагируете соответствующим образом. В зависимости от случая и используемых вами инструментов, это может быть не тривиально.
Чтобы получить более конкретный ответ, нам нужно знать, какие технологии вы используете и какой контроль над вашими заданиями.
Что ж, вот оно, надеюсь, мои аналогии помогут вам понять концепции!