比如在多线程环境, 当主线程main_api.wait_update时,若存在多个子线程在启动,而这些子线程工作在密集计算代码,则主线程得不到运行,导致main_api.wait_update响应超时,这种情况根据我的测试,若你是在等待k线更新,基本上程序就over了,因为k线已经不再更新了
因此对计算密集型代码需人工设置短时阻塞,以使其他线程获得切换机会. 但是这样做依然是很不理想的,当子线程数量继续增加时,主线程依然可能因超时而停摆.同时人为设置阻塞以让主线程获得切换机会的方式实在太丑陋了
建议能在wait_update时导致某个数据面超时后,确保后面可以跟得上,而不是直接中断其更新.
目前我的做法是跟踪某个数据的更新,一旦停止,重新get,但为什么不能在wait_update中实现呢,而让用户去实现?
李思恒 已回答的问题 2021年10月18日
另,由于python线程无法设置线程优先级(由于GIL机制),目前也没有其他好方法. 不知道有没有其他方法可以使用
另,网络问题也可能导致超时, 所以我的程序在下雨天表现更为糟糕,因为我用得是手机热点,o(* ̄︶ ̄*)o