Модуль timer

Модуль timer содержит функции для работы с таймером. Как написано в документации, более эффективным является использование стандартного таймера Эрланга (erlang:start_timer/3 и erlang:send_after/3). Однако данный модуль содержит несколько удобных функций: для создания периодических таймеров, спауна, засыпания, измерения времени выполнения фунтермов и функций, посылания актору сигнала выхода.

Время везде по умолчанию указывается в миллисекундах.

Функции модуля timer

apply_after(Time, Function) Спаунит фунтерм по таймеру — через Time миллисекунд.

apply_after(Time, Function, Arguments) Спаунит фунтерм с аргументами по таймеру — через Time миллисекунд.

apply_after(Time, Module, Function, Arguments) Спаунит МФА по таймеру — через Time миллисекунд.

apply_interval(Time, Function) Запускает специальный таймер, который будет через Time миллисекунд спаунить фунтерм.

apply_interval(Time, Function, Arguments) Запускает специальный таймер, который будет через Time миллисекунд спаунить фунтерм с аргументами.

apply_interval(Time, Module, Function, Arguments) Запускает специальный таймер, который будет через Time миллисекунд спаунить МФА. Остановить этот таймер можно с помощью timer:cancel({interval,TRef}).

apply_repeatedly(Time, Function) Запускает специальный таймер, который будет через Time миллисекунд спаунить фунтерм; как заявлено, новый актор не будет спауниться, пока предыдущий не завершил работу.

apply_repeatedly(Time, Function, Arguments) Запускает специальный таймер, который будет через Time миллисекунд спаунить фунтерм с аргументами; как заявлено, новый актор не будет спауниться, пока предыдущий не завершил работу.

apply_repeatedly(Time, Module, Function, Arguments) Запускает специальный таймер, который будет через Time миллисекунд спаунить МФА; как заявлено, новый актор не будет спауниться, пока предыдущий не завершил работу.

cancel(TRef) Заканчивает работу таймера с данным идентификатором; для периодических таймеров надо указывать {interval,TRef}.

exit_after(Time, Target, Reason1) Через Time миллисекунд посылает {exit,Reason} указанному актору.

hms(Hours, Minutes, Seconds) Превращает временной интервал, заданный с помощью часов, минут и секунд, в количество миллисекунд.

hours(Hours) Переводит часы в миллисекунды.

minutes(Minutes) Переводит минуты в миллисекунды.

now_diff(T2, T1) Вычисляет разницу в микросекундах между двумя указанными временными отметками в формате timestamp.

seconds(Seconds) Превращает секунды в миллисекунды.

send_after(Time, Destination, Message) Через Time миллисекунд пошлёт сообщение указанному актору.

send_interval(Time, Destination, Message) Запускает специальный таймер, который будет периодически через Time миллисекунд посылать данное сообщение указанному актору.

sleep(Time) Заснуть на столько-то миллисекунд.

start() Запускает сервер таймера; обычно нет нужды делать это специально, он запускается автоматически, когда надо.

tc(Fun) Выводит время, за которое исполнился фунтерм.

tc(Fun, Arguments) Выводит время, за которое исполнился фунтерм, запущенный с данными аргументами.

tc(Module, Function, Arguments) Выводит время, за которое исполнился МФА.

tc(Module, Function, Arguments, TimeUnit) Выводит время, за которое исполнился МФА, в формате определённого временного юнита.


Copyright © 2025 Алексей Карманов