起因是在学 openresty 的时候官方 lua-nginx-module 里官方介绍 ngx.timer.at 的使用方法,介绍了一种定时器的写法

这是用递归调用实现的定时器,查看源码 ngx.timer.at 是异步的,使用时是创建一个 coroutine 运行子函数。
一般来说无限递归调用自身会导致栈溢出,但是这个例子我测试了并不会栈溢出。
于是测试了 golang 的在函数中开启协程递归调用自身:

测试 python3 在函数中开启线程递归调用自身:

上面这两个也并不会产生栈溢出,请问这是为什么呢?

这是用递归调用实现的定时器,查看源码 ngx.timer.at 是异步的,使用时是创建一个 coroutine 运行子函数。
一般来说无限递归调用自身会导致栈溢出,但是这个例子我测试了并不会栈溢出。
于是测试了 golang 的在函数中开启协程递归调用自身:

测试 python3 在函数中开启线程递归调用自身:

上面这两个也并不会产生栈溢出,请问这是为什么呢?

