加载中...
avatar
文章
35
标签
24
分类
3
首页
归档
标签
分类
关于
chenXming的个人技术网站iOS线程锁使用总结 返回首页
首页
归档
标签
分类
关于

iOS线程锁使用总结

发表于2021-06-18|更新于2026-01-28|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
文章链接: https://chenxming.github.io/2021/06/18/iOS%E7%BA%BF%E7%A8%8B%E9%94%81%E4%BD%BF%E7%94%A8%E6%80%BB%E7%BB%93/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 chenXming的个人技术网站!
iOSAI多线程
上一篇
从iOS到前端H5开发
从iOS到前端H5开发一、基础知识对比基本数据类型比较,操作值类型,引用类型方法、函数对比 二、Vue简单介绍 响应式编程, 三、界面搭建、三方库使用、传值方式、路由 微信小程序 到 推推小程序 四、一些坑本地 node版本过高问题vue-clipboard3 Vue 2跟 Vue3的库五、总结
下一篇
iOS-架构浅谈 从 MVC、MVP 到 MVVM
概述做了这么多年的客户端研发一直在使用苹果爸爸推荐的MVC架构模式。MVC从应用层面进行分层开发,极大优化了我们的代码结构,简单易上手,很容易被程序员所接受。程序员刚接手一个新项目,如果是MVC的架构模式,会减少代码熟悉时间,快速的进行开发和维护工作,实际上对于多人开发维护的项目,MVC仍然是非常好的架构模式,这也是这种架构模式经久不衰的原因。但是任何事物都有两面性,随着项目需求的增加,业务逻辑、网络请求、代理方法等都往Controller层加塞,导致Controller层变得越来越臃肿,动辄上千行的代码量绝对是维护人员的噩梦,因此在MVC基础上逐渐衍生出来了MVP、MVVM等架构模式。本文是基于OC代码进行阐述的,使用iOS开发经典的 TableView 列表来分析每个架构模式。相信看了这篇文章你会有所领悟。当然一千个人眼中有一千种哈姆雷特,具体在业务开发中使用哪种模式需要你自己去衡量。 1.传统的MVC设计模式M: Model 数据层,负责网络数据的处理,数据持久化存储和读取等工作V: View 视图层,负责呈现从数据层传递的数据渲染工作,以及与用户的交互工作C: Contr...
相关推荐
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。你可能会有疑问,我写前端页...
avatar
chenXming
iOS开发 → 前端 → AI探索
文章
35
标签
24
分类
3
Follow Me
公告
欢迎来到我的技术博客!这里记录了我的技术成长之路。
目录
  1. 1. iOS多线程总结
  2. 2.
    1. 2.1. 一.概述与方案
      1. 2.1.1. 1. PThread
      2. 2.1.2. 2. NSThread
      3. 2.1.3. 3. GCD
      4. 2.1.4. 4. NSOperation
    2. 2.2. 二.实际应用
      1. 2.2.1. 1.多个请求完成后继续进行下一个请求的方法总结
      2. 2.2.2. 2.多任务下载逻辑,重写NSoperation 的strat方法
    3. 2.3. 3.总结以及后续使用 线程锁
最新文章
解析Temperature与TopP:如何掌控大模型的输出随机性2026-01-19
AI时代的前端知识拾遗:前端事件循环机制详解(基于 WHATWG 最新规范)2025-11-03
基于360容器云的K8s MCP Server2025-07-14
长音频离线语音识别系统——基于Whisper.cpp的本地部署方案2025-05-23
Cursor + MCP的组合2025-04-21
© 2021 - 2026 By chenXming
技术改变生活