gpt4 book ai didi

ios - 使用 NSURLConnection 是否需要考虑线程安全? - iOS

转载 作者:行者123 更新时间:2023-11-28 23:05:49 26 4
gpt4 key购买 nike

我一直想知道异步请求如何与 NSURLConnection 一起工作。

例如,假设您的应用程序中正在运行多个上传进程,所有进程都使用 NSURLConnection 的不同实例进行初始化。作为上传过程,您的包装器对象会调用 NSURLConnection 委托(delegate)方法,例如:

-(void)connectionDidFinishLoading:(NSURLConnection*)connection;

假设在您所有的 NSURLConnection 包装器对象中共享同一个委托(delegate)对象,该对象具有一个数组中所有事件上传的列表,并且当为您的所有连接调用 connectionDidFinishLoading 时,它们进入并从该列表中删除自己共享委托(delegate)对象。

那么问题是,当这些连接对象可以访问同一个数组时,您是否需要担心线程安全?还是所有这些委托(delegate)方法都以您不必担心线程安全的方式返回到主线程?

最佳答案

诀窍是在您创建 NSURLConnection 的线程上调用委托(delegate)方法,除非您特别更改它将成为主线程。操作系统使用线程队列 API 之一,按照每个连接完成的顺序在该线程上一遍又一遍地调用委托(delegate)方法。

使用 NSURLConnection 它只是真正需要线程化的传输。如果传输发生在主线程上,那么在传输期间用户将无法与您的 iOS 应用程序交互。处理结果需要相对较短的时间,但如果需要很长时间,是否选择在后台(在不同的线程上)进行处理则取决于您。

关于ios - 使用 NSURLConnection 是否需要考虑线程安全? - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9319370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com