Шрифт:
Почему взаимное исключение всегда связано с условной переменной? «Условие» обычно представляет собой значение некоторой переменной, используемой совместно несколькими потоками. Взаимное исключение требуется для того, чтобы различные потоки могли задавать и проверять значение условной переменной. Например, если в примере кода, приведенном ранее, отсутствовало бы взаимное исключение, то проверка в главном цикле выглядела бы следующим образом:
Но при этом существует вероятность, что последний поток увеличивает значение переменной
По этой же причине при вызове функции
Существует вероятность того, что по завершении выполнения поток увеличит на единицу значение переменной
Обычно функция
Функция
В данном случае значение времени является абсолютным значением времени, в отличие от относительного значения разницы во времени( time delta) между некоторыми событиями. Иными словами,
Преимущество использования абсолютного времени (в противоположность относительному) заключается в том, что функция может завершиться раньше (возможно, из-за перехваченного сигнала). Тогда функцию можно вызвать снова, не меняя содержимое структуры