扫码关注官方订阅号
Android 访问网络的时候什么情况下用同步和异步,大家可以举个具体案例或附加一段代码,非常谢谢。
人生最曼妙的风景,竟是内心的淡定与从容!
是的。楼上都说了。我就补充一下。 子线程才能使用网络访问这是必须的。 但同步操作一般局限在多个子线程同时访问同一资源才会使用同步。 所以依然要异步访问网络。但多个异步构成同步
赞同yuepeng的答案,首先网络请求必须要在子线程发出。其实判断需不需要异步操作很简单,主线程请求网络数据使用异步,子线程请求网络数据使用同步
通常都是用异步。只有当你需要按顺序做多个网络请求,并且需要展示总进度的时候用同步才比较好。用过阿里云oss的同学应该踩过这个坑
异步或同步看你针对的是谁。为了防止UI卡死,网络请求不能放在UI线程中(当然也有办法在主线程中执行)。对于UI线程来说,网络请求线程都是异步的。但是如果有多个需要顺序执行的网络请求,那么这几个网路请求在一个子线程中顺序执行。对于子线程来说,他们是同步的,但是对于UI他们始终是异步。
如果要显示总进度只是需要通知UI更新界面,也是异步执行。
访问网络不是都要异步吗?
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
是的。楼上都说了。我就补充一下。 子线程才能使用网络访问这是必须的。 但同步操作一般局限在多个子线程同时访问同一资源才会使用同步。 所以依然要异步访问网络。但多个异步构成同步
赞同yuepeng的答案,首先网络请求必须要在子线程发出。
其实判断需不需要异步操作很简单,主线程请求网络数据使用异步,子线程请求网络数据使用同步
通常都是用异步。
只有当你需要按顺序做多个网络请求,并且需要展示总进度的时候用同步才比较好。用过阿里云oss的同学应该踩过这个坑
异步或同步看你针对的是谁。为了防止UI卡死,网络请求不能放在UI线程中(当然也有办法在主线程中执行)。对于UI线程来说,网络请求线程都是异步的。但是如果有多个需要顺序执行的网络请求,那么这几个网路请求在一个子线程中顺序执行。对于子线程来说,他们是同步的,但是对于UI他们始终是异步。
如果要显示总进度只是需要通知UI更新界面,也是异步执行。
访问网络不是都要异步吗?