输入/搜索内容
内置函数
Global
Log
Market
Trade
Account
Futures
Exchange
IO
Network
Storage
Threads
exchange.Go
EventLoop
ctx.subscribe
ctx.poll
ctx.order
ctx.cancel
ctx.orderAsync
ctx.cancelAsync
Subscription
threading
Thread
ThreadLock
ThreadEvent
ThreadCondition
ThreadDict
Server
Server.addr
Server.close
Server.stop
Server.join
Server.pending
TA
Talib
OS
结构体
内置变量与常量
通用约定
交易所

等待服务关闭且所有处理函数执行完毕。

join()
join(timeout)

示例

在随机端口启动Http服务,观察处理中的请求数,再优雅关闭。

javascript
function main() { // 端口写 0 表示随机分配空闲端口,实际地址用 addr() 获取 var server = threading.Serve("http://127.0.0.1:0", function (ctx) { Sleep(1000) ctx.write("done") }) Log("listen on", server.addr()) // 输出:listen on 127.0.0.1:<随机端口> // 在另一个线程里发起请求,主线程观察服务状态 threading.Thread(function (addr) { Log("response:", HttpQuery("http://" + addr + "/")) // 输出:response: done(约1秒后) }, server.addr()) Sleep(200) Log("pending:", server.pending()) // 输出:pending: 1(有一个请求正在处理) server.close() // 不再接收新连接,正在处理的请求继续执行 Log("idle:", server.join(5000)) // 输出:idle: true(服务已关闭且请求都处理完了) }

返回值

类型描述

bool

服务已关闭且没有正在执行的处理函数时返回true,超时返回false。

参数

名称类型必填描述

timeout

number

否

等待的超时时间,单位毫秒。省略或者为0时一直等待(策略停止时返回)。

参考

备注

服务没有关闭时join()会一直等到它被关闭,通常先调用close()再调用join()。