getaddrinfo阻塞时间太长,有啥解决办法
如果是Windows的话,有getaddrinfo的异步版本(GetAddrInfoEx function (Windows))。 Android这个比ios还老的系统不可能没有吧。
■网友
本地实现一个 Cache,App 一启动就开始解析可能用到的 addrinfo,然后把结果存着
■网友
谢谢大家的答案~,有朋友说使用异步api,多线程之类,考虑到已经是线上项目,为了求稳,不太想改代码结构。现在的解决方法是在初始化的时候cache下所需要的addrinfo,后面不再请求,所以网络情况差的时候,也不会卡住了,这样改动比较小,原来的代码结构不用改。发现有朋友已经提到这个答案了^_^
■网友
我知道libuv里是开了个线程去调用这个函数的,然后有结果了再通知回主线程
■网友
这个问题在项目中遇到了,简单来说是,调用一个签名算法需要初始化Mac 实例,初始化过程中需要调用系统熵,获取local信息时候卡住了,发现是jdk1.7后面实现变了,添加了local 本地的IPv4,6的映射解决
■网友
boost async_resolve
■网友
根据协议自己去发网络包 做成异步的 实在不会 开个线程 在线程里面做这个事情
■网友
尝试异步版本 getaddrinfo_a
How to use getaddrinfo_a to do async resolve with glibc 【getaddrinfo阻塞时间太长,有啥解决办法】
推荐阅读
- 黄金时间■黄金时间丨打造海绵城市:节水从利用雨水开始
- 黄金时间■黄金时间丨哪种产品最节水?购买产品请注意这个标识!
- 『黄金时间』请认准这个蓝色的标志! 黄金时间丨同行业中用水最少的企业
- 黄金时间■黄金时间丨江苏企业节水改造缺钱?快来申请“节水贷”
- 黄金时间■黄金时间丨你喝过和纯净水口感一样的海水吗?企业用风能代替网电加工淡化海水
- 『黄金时间』节水工作一刻不能放松! 黄金时间丨水乡江苏也缺水
- 黄金时间■新技术加持!江苏高标准农田灌溉效率大幅提升
- 『黄金时间』12月8日晚锁定江苏公共新闻频道《黄金时间》 建设“节水优先”的水乡江苏
- 骨裂|
- 考试|吉林省2021年艺术类省统考时间公布!