![]() |
Xlight API用户手册 v1.6.0.23
Xlight极速柜台接口文档
|
本文介绍交易API的线程模型。理解线程模型有助于正确使用API接口、避免死锁和数据竞争。
交易API运行时涉及以下线程:
| 线程 | 说明 |
|---|---|
| 用户线程(可多个) | 用户自己的业务线程,通常在此调用API请求接口向柜台发送上行请求 |
| 登录及查询回调线程 | API内部线程,接收柜台下行消息,触发登录响应、查询响应等回调 |
| 消息推送线程 | API内部线程,接收柜台下行消息,触发订阅后的交易消息推送回调(回报、订单簿变动等) |
| 超时通知线程 | API内部线程,请求超时、委托超时没有收到任何回报时触发相应登录响应、查询响应、委托超时等回调 |
用户线程是用户自己创建的业务线程,可以有多个。API的请求接口可以在任意线程中调用(包括用户线程和回调线程),常用接口如下:
下单/撤单性能建议:
此线程由API内部管理,负责触发以下回调:
注意事项:
此线程由API内部管理,负责触发订阅后的交易消息推送回调,包括:
委托回报消息(REPORT):
原始报文消息(RAW_REPORT):
订单簿消息(ORDER_BOOK):
资金划拨消息(任意订阅类型均会推送):
注意事项:
| 场景 | 建议 |
|---|---|
| API请求接口的调用线程 | 可在任意线程中调用(用户线程或回调线程均可) |
| 下单/撤单性能优化 | 建议调用线程进行绑核,线程中首次调用前调用 x1::XLTTradeApi::init_local_send |
| 在回调中访问共享数据 | 推送回调与登录/查询回调运行在不同线程中,访问共享数据时需加锁保护或使用无锁结构 |