zoukankan      html  css  js  c++  java
  • 多线程与并发

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

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

    主线程是界面线程

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

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

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

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

    特点就是

    1:代码执行的非常快

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

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

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

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

    3:声音是异步播放的;

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

    厚积薄发
  • 相关阅读:
    面向对象先导课感想
    【LATEX】个人版latex论文模板
    【前端】wangEditor(富文本编辑器) 简易使用示例
    【前端】ACE Editor(代码编辑器) 简易使用示例
    苦果:像专家一样思考,像外行一样实践
    Matplotlib cheatsheet
    版本控制最佳实践cheatsheet
    “左手程序员、右手作家”Jupyter Notebook Cheatsheet
    Pandas DataWrangling cheatsheet(数据整理 )
    Numpy basic sheatsheet
  • 原文地址:https://www.cnblogs.com/yr434/p/5027066.html
Copyright © 2011-2022 走看看