iOS – 并发访问内存资源

iOS – 并发访问内存资源,第1张

概述我的应用程序从服务器,数据和数据描述符下载了几个资源.由用户 *** 作触发的这些下载可以同时执行,例如,一次最多50次下载.所有这些异步任务最终都在内存中创建对象(例如,将叶子附加到数据结构,例如向可变字典或对象添加到数组的键).我的问题是:这会导致稳定性问题吗?例如,如果几个同时的任务尝试将键添加到同一个字典中,我是否应该处理这种情况,放置某种锁?如果我实现了一个在数组中查找图形元素的for循环,那么 我的应用程序从服务器,数据和数据描述符下载了几个资源.由用户 *** 作触发的这些下载可以同时执行,例如,一次最多50次下载.所有这些异步任务最终都在内存中创建对象(例如,将叶子附加到数据结构,例如向可变字典或对象添加到数组的键).我的问题是:这会导致稳定性问题吗?例如,如果几个同时的任务尝试将键添加到同一个字典中,我是否应该处理这种情况,放置某种锁?如果我实现了一个在数组中查找图形元素的for循环,那么其他正在运行的任务是否可能在循环期间更改数组内容?关于除官方文档之外的多任务,多线程问题的任何参考或主要,一般方向?解决方法 取决于您如何处理下载 – 如果您使用的是NSURLConnection,它会为您处理单独的线程/并发,并且您的代码是可重入的,因此您不必担心同时执行 *** 作.
如果您正在创建自己的线程,则可能存在问题.

编辑:您的代码在主线程(主运行循环)中运行,假设您有一个NSURLConnection,它也在运行,然后它将在一个单独的线程中运行.但是,处理连接正在进行时发生的事件的委托代码在运行循环中运行,而不是在另一个线程中运行.这意味着您的代码一次只能执行一件事.连接成功方法不会与任何其他代码同时调用.如果你有一个for循环运行,那么它将阻塞你的主线程,直到它完成循环,同时如果连接完成而for循环仍在运行,那么你的委托代码将不会执行,直到循环完成.

总结

以上是内存溢出为你收集整理的iOS – 并发访问内存资源全部内容,希望文章能够帮你解决iOS – 并发访问内存资源所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存