有人知道是否可以在Erlang中制作高分辨率计时器?
根据文档记录,所有计时器和超时都以毫秒为单位
需要在几微秒内进行延迟。例如,而不是
timer:apply_after(MilliSec, Module, Function, Arguments).
类似的东西
timer:apply_after(MicroSec, Module, Function, Arguments).
答案 0 :(得分:3)
实际上,所有定时器和超时原语都是以毫秒为单位,包括:
receive
... after
原语(这是timer
模块最终依赖的内容); erlang:send_after/3
和erlang:start_timer/3
依赖相同的机制; driver_set_timer
函数用于链接到驱动程序。可以考虑两种方法来实现亚毫秒计时器:
erlang:now()
不是实时功能,因为它保证单调(这是非常昂贵的)。您应该使用os:timestamp()
代替; 答案 1 :(得分:0)