当前位置: 首页 > news >正文

西宁好的网站建设公司mysql wordpress

西宁好的网站建设公司,mysql wordpress,高端网站建设套餐,郑州软件开发公司以创建一个 DataRequest 为例子 #xfffc; 发起请求 创建 SessionManager 顺带也创建了一个 SessionDelegate 持有一个urlSession#xff0c;持有一个串行的 DispatchQueue A。注意#xff0c;这个不是urlSession 回调方法执行时所在的OperationQueue 创建 Requestable 的…以创建一个 DataRequest 为例子 发起请求 创建 SessionManager 顺带也创建了一个 SessionDelegate 持有一个urlSession持有一个串行的 DispatchQueue A。注意这个不是urlSession 回调方法执行时所在的OperationQueue 创建 Requestable 的 struct并创建underlying 的 URLSessionDataTask 目前不太清楚作用是什么但是文档上的注释写着 Helper Types。 持有一个 urlRequest。 然后使用这个 Requestable创建一个 URLSessionDataTask注意要在SessionManager持有的串行队列中同步创建 sessionManager 创建一个 Request 对象 通过传入参数 URLSessionDataTask 和 urlSession。Request 会持有传入的 urlSession并根据URLSessionDataTask创建一个 TaskDelegate。 外部对这个TaskDelegate 的读取被锁保护起来了。 /// The delegate for the underlying task. open internal(set) var delegate: TaskDelegate {get {taskDelegateLock.lock() ; defer { taskDelegateLock.unlock() }return taskDelegate}set {taskDelegateLock.lock() ; defer { taskDelegateLock.unlock() }taskDelegate newValue} } 创建 TaskDelegate 新创建的 TaskDelegate 会持有传入的URLSessionDataTask. 在初始化方法中会创建一个最大并发数是1的OperationQueue并使之处于 suspend 状态。 sessionManger 持有 Request 创建 Request 之后会把这个 Request 加到 sessionManger 持有的一个字典中其读取方法也被加锁了。 var requests: [Int: Request] [:] private let lock NSLock()/// Access the task delegate for the specified task in a thread-safe manner. open subscript(task: URLSessionTask) - Request? {get {lock.lock() ; defer { lock.unlock() }return requests[task.taskIdentifier]}set {lock.lock() ; defer { lock.unlock() }requests[task.taskIdentifier] newValue} }处理网络数据 sessionDelegate 接受系统回调 比如方法urlSession(_, task:, didCompleteWithError:)中会根据 URLSessionTask, 找到对应的 Request。 运行 Request 所有的 validations 运行 TaskDelegate 的任务 所有的任务都被加到了其持有的 OperationQueue 中。此时处于suspend 状态要使其处于可运行的状态。 然后加到其中的所有任务都会开始运行。 去掉对 Request 的持有 Request 已经收到并处理完了网络回调因此就不必被 sessionDelegate 强持有了。 如果没有其他的持有者Request 和其TaskDelegate 也会被释放。 其中的同步逻辑 sessionManager 的 DispatchQueue 仅用于创建 URLSessionTask 及部分文件目录操作都是同步操作。 可能在任何线程创建 URLSessionTask sessionDelegate 的 lock 仅用于对其持有的Request的读取进行加锁 Request 的 lock 仅对其持有的 TaskDelegate 的读取进行加锁 TaskDelegate 的串行 OperationQueue 其中的 Operation 在数据返回后会执行并且不会并发。 各种 response 方法都是在其中加入 Operation TaskDelegate 的 lock 用于对 urlSessionTask 的读取进行加锁。 URLSessionTask 如何把整体串起来 在 sessionManager 中被创建初始化 Request 时被传入用来创建TaskDelegate被TaskDelegate持有在sessionDelegate 中其 taskIdentifier 被作为索引来获取Request处理回调时根据URLSessionTask可以找到对应的Request进行对应的处理。转载于:https://www.cnblogs.com/huahuahu/p/Alamofire-yuan-ma-dao-du-er-fa-qi-qing-qiu-ji-nei-.html
http://www.zqtcl.cn/news/269908/

相关文章:

  • 福建省住房和城乡建设厅网站站群 网站如何做
  • 网站换稳定服务器网页制造与网站建设论文
  • wordpress 产品目录seo技术是干什么的
  • 做里番网站犯法吗中建八局第一建设有限公司资质
  • 怎么制作网站教程电商seo建站优化价格表
  • 黄平网站建设网站建设公司广告 晴天娃娃
  • 中山市 有限公司网站建设网站建设 福步 2018
  • 英语网站开发中国桥梁建设公司排名
  • php做的网站怎么运行公司网站备案查询
  • jsp 响应式网站模板设计类网站策划案
  • 建设银行网站怎么注销网银百度广告联盟
  • flash建网站教程天津市建设工程评标专家网
  • 合格的网站设计师需要会什么软件seo 深圳
  • 公司网站建设费用账务处理软文300字案例
  • 门户型网站特点网站营销推广的公司
  • wordpress gif主题seo兼职怎么收费
  • 商城免费建站系统手机端首页尺寸多少
  • 网站上存储播放视频怎么做wordpress 作品集 相册
  • 建设网工程信息南昌官网seo厂家
  • 上海网站seo牛巨微网页设计模板html代码个人介绍
  • 网站 架构 设计公司网站建设费怎么做账
  • 合肥电脑网站建站萍乡手机网站建设
  • 优化seo网站西安wordpress 做购物网站
  • 广州建设档案馆网站稿定设计app免费版官方
  • 橙色企业网站源码建设工程投标文件在哪个网站有发布
  • 服务器可以做网站吗深圳高端网站建设创新
  • 企业平台网站建设方案大连网络广告
  • 如何给网站做宣传新手怎么建立自己网站
  • 酒店和网站对接如何做开发网站那个好
  • 北京建设信源咨询有限公司网站快对小程序入口