iOS线程锁使用总结
发表于|更新于|iOS开发
|总字数:93|阅读时长:1分钟|浏览量:
[toc]
iOS多线程总结
一.概述与方案
PThread、NSThread、GCD、NSOperation
1. PThread
2. NSThread
3. GCD
4. NSOperation
https://blog.csdn.net/u014205968/article/details/78323169
二.实际应用
1.多个请求完成后继续进行下一个请求的方法总结
http://www.cocoachina.com/articles/21427
https://www.jianshu.com/p/cffd3ace0653
2.多任务下载逻辑,重写NSoperation 的strat方法
3.总结以及后续使用 线程锁
文章作者: chenXming
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 chenXming的个人技术网站!
相关推荐
2021-04-25
iOS-滤镜那些事儿
一. GPUImage 框架的介绍及基本使用1.GPUImage 的介绍 GPUImage是基于OpenGL ES的一套图像、视频处理开源框架,它里面提供了大量的滤镜,使用者可以通过这些滤镜的组合实现很好的效果,同时也很方便在原有基础上实现自定义的滤镜。对于大规模并行操作(如处理图像或实时视频帧),GPU具有比CPU更显着的性能优势。而 GPUImage 所有滤镜是基于OpenGL Shader实现的,所以滤镜效果、图像处理是在GPU上执行的,处理效率比较高,在iPhone4及其以上手机,可以做到实时流畅的效果。而且它隐藏了Objective-C与OpenGL ES API交互的复杂性。目前市面上的图像视频处理App,95%以上在使用GPUImage,所以学习它的使用及原理还是很有必要的。GPUImage 同时支持iOS跟Andorid平台,地址:iOS版本 Android版本 也支持 Swift版本,本文主要介绍它的 OC 版本,核心类的功能以及原理跟 Andorid 版本是相通的。iOS开发者使用方式:直接 CocaPods 集成: pod 'GPUImage...
2022-03-04
WebViewJavascriptBridge源码解析
一. 概述做客户端开发免不了要与WebView打交道,特别是对于Hybrid App,在H5所占比重越来越大的背景下,一套好的WebView 与原生交互的API显得尤为重要,当然目前两端都有比较成熟的三方库进行支持。比如Android端的JsBridge,iOS端的WebViewJavascriptBridge,但是对于其内部原理笔者一直一知半解,导致有时面对问题无从下手,最后决心分析WebViewJavascriptBridge的内部实现原理,一是提升自己的源码阅读水平,其次也希望对以后的工作有所帮助。 二. 基本原理下载WebViewJavascriptBridge的源码后可以看到其文件并不多,分别对几个文件做简单的介绍,后面详细分析其源码 WebViewJavascriptBridge_JS: JS桥接文件,通过它实现JS环境的初始化,里面就一个C函数,返回的是JS方法。原生调用的JS方法与对应的方法回调都需要先在这里面进行注册。 WKWebViewJavascriptBridge 与 WebViewJavascriptBridge: WKWebView与UIWebVie...
2022-06-16
iOS-多线程使用总结
一.概述与实现方案1. 线程与进程多线程在iOS中有着举足轻重的地位,是每一位开发者都必备的技能,当然也是面试常考的技术点,本文主要是探究我们实际开发或者面试中遇到的多线程问题。比如什么是线程?它跟进程是什么关系,队列跟线程什么关系,同步、异步、并发(并行)、串行这些概念又怎么来理解,iOS有哪些常用多线程方案,以及线程同步技术有哪些等等。 线程(英语:thread)是操作系统能够进行运算调度的最小单位。大部分情况下,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 — 维基百科 这里又多了一个 进程,那什么是进程呢,说白了就是是指在操作系统中正在运行的一个应用程序,如微信、支付宝app等都是一个进程。线程是就是进程的基本执行单元,一个进程的所有任务都在线程中执行。也就是说 一个进程最少要有一个线程,这个线程就是主线程。当然在我们实际使用过程中不可能只有一条主线程,我们为提高程序的执行效率,往往需要开辟多条子线程去执行一些耗时任务,这里就引出了多线程的概念。 多线程(英语:m...
2021-10-20
iOS-浅谈UIView的刷新与绘制
概述:UIView是我们在做iOS开发时每天都会接触到的类,几乎所有跟页面显示相关的控件也都继承自它。但是关于UIView的布局、显示、以及绘制原理等方面笔者一直一知半解,只有真正了解了它的原理才能更好的服务我们的开发。并且在市场对iOS开发者要求越来越高的大环境下,对App页面流畅度的优化也是对高级及以上开发者必问的面试题,这就需要我们要对UIView有更深的认知。 一.UIView 与 CALayerUIView:一个视图(UIView)就是在屏幕上显示的一个矩形块(比如图片,文字或者视频),它能够拦截类似于鼠标点击或者触摸手势等用户输入。视图在层级关系中可以互相嵌套,一个视图可以管理它的所有子视图的位置,在iOS当中,所有的视图都从一个叫做UIView的基类派生而来,UIView可以处理触摸事件,可以支持基于Core Graphics绘图,可以做仿射变换(例如旋转或者缩放),或者简单的类似于滑动或者渐变的动画。 CALayer:CALayer类在概念上和UIView类似,同样也是一些被层级关系树管理的矩形块,同样也可以包含一些内容(像图片,文本或者背景色),管理子图层的位...
2021-05-17
iOS-架构浅谈 从 MVC、MVP 到 MVVM
概述做了这么多年的客户端研发一直在使用苹果爸爸推荐的MVC架构模式。MVC从应用层面进行分层开发,极大优化了我们的代码结构,简单易上手,很容易被程序员所接受。程序员刚接手一个新项目,如果是MVC的架构模式,会减少代码熟悉时间,快速的进行开发和维护工作,实际上对于多人开发维护的项目,MVC仍然是非常好的架构模式,这也是这种架构模式经久不衰的原因。但是任何事物都有两面性,随着项目需求的增加,业务逻辑、网络请求、代理方法等都往Controller层加塞,导致Controller层变得越来越臃肿,动辄上千行的代码量绝对是维护人员的噩梦,因此在MVC基础上逐渐衍生出来了MVP、MVVM等架构模式。本文是基于OC代码进行阐述的,使用iOS开发经典的 TableView 列表来分析每个架构模式。相信看了这篇文章你会有所领悟。当然一千个人眼中有一千种哈姆雷特,具体在业务开发中使用哪种模式需要你自己去衡量。 1.传统的MVC设计模式M: Model 数据层,负责网络数据的处理,数据持久化存储和读取等工作V: View 视图层,负责呈现从数据层传递的数据渲染工作,以及与用户的交互工作C: Contr...
2022-02-18
360小程序研发经验总结
从客户端到前端研发经验总结一. 概述笔者是客户端研发出身,如果只有一门技术傍身,不足以胜任市场对客户端研发要求,于是想学习大前端技术栈。但苦于日常工作繁琐,一直没有机会学习(其实就是自身懒惰)。直到工作需要,需要写一个微信小程序,这才下决心学习前端技术。其实如果想入门前端,从微信小程序入手不失为一个好的方法。初次接触微信小程序的数据双向绑定机制,让写习惯了客户端的我叹为观止。目前我入门前端的技术路径是:客户端—微信小程序—360小程序—混合App—H5。一些我自己的经验总结出来,希望对你有所帮助。当然阅读这篇文章的前提是,你已经了解了基本的Html、CSS、JS语法。 二. 环境与工具1. 前端环境搭建 笔者使用的Mac电脑,所有的环境搭建工作都是基于Mac电脑来操作的。首先安装node.js与npm: node.jsnode 是一个基于 V8 引擎的 Javascript 运行环境,它使得 Javascript 可以运行在服务端,直接与操作系统进行交互,与文件控制、网络交互、进程控制等。简单的说node.js就是运行在服务端的 JavaScript。你可能会有疑问,我写前端页...
公告
欢迎来到我的技术博客!这里记录了我的技术成长之路。
目录
