• 多线程与并发


    ,线程的部分功能就是实现并发,多个线程在每个线程上都可以执行小段的代码,处理器很快的在各个线程间进行切换,像是在同时运行,其实所有的 iOS 设备都还有第二个处理器,显示接口卡(GPU),与显示相关的代码都由 GPU 独立于主处理器之外运行.

    主线程自动有一个运行循环(run loop),一个run loop 就是一个事件接收者,如果没有 run loop,线程就不能接收事件,你的代码通过运行循环得知它正在发生的事件, Cocoa 事件通常到达主线程的运行循环,这就是为什么由这些事件调用的代码在主线程上运行的原因.

    主线程是界面线程

    主线程的主要工作有以下几点

    1:事件到达主线程,例如 btn按钮被点击向在主线程上你的应用程序报告 event事件

    2:控制事件会导致你的代码在主线程上被调用,例如你的代码令界面发生改变,这是安全的,因为代码正在主线程上运行

    3,代码完成后,主线程的运行循环可以处理更多地事件,用户可以再次进行交互,例如 btn的多次点击

    特点就是

    1:代码执行的非常快

    2:代码运行时,会阻止用户与界面的交互.例如,在更新界面的时候如果可以进行点击操作,这是非常不合理的

    框架一直都在操作辅助线程,他们通常会保持与在主线程上的代码的协调通信

    例如1:动画播放期间,界面保持响应用户,并有可能运行代码,, coreAnimation 框架负责播放动画,后台线程上更新显示的层,但你的代理方法或完成处理块儿在主线程调用

    2:UIWebView的提取和加载是异步的

    3:声音是异步播放的;

    4:保存下载图片也应该是异步的

    厚积薄发
  • 相关阅读:
    章节1:SQL语言简易入门
    章节0:MySQl学前知识储备
    iOS 设置导航栏全透明
    IOS修改Navigation Bar上的返回按钮文本颜色,箭头颜色以及导航栏按钮的颜色
    iOS import导入时没有提示的解决办法
    iOSAPP开发项目搭建
    如何搭建iOS项目基本框架
    UIWebView中JS与OC交互 WebViewJavascriptBridge的使用
    iOS概念之KVO(Key-Value Observing)
    oc调javascript方法(evaluateJavaScript:)&&js给oc发通知
  • 原文地址:https://www.cnblogs.com/yr434/p/5027066.html
Copyright © 2020-2023  润新知