![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios多线程
文章平均质量分 67
家浩慕容
这个作者很懒,什么都没留下…
展开
-
Swift5多线程系列一GCD异步/延时使用初步封装
Swift5多线程系列一GCD异步/延时使用初步封装GCD异步延时使用初步目录Swift5多线程系列一GCD异步/延时使用初步封装前言一、封装成基本的struct二、基本使用1.异步初步任务基本使用2. 延迟执行任务基本使用总结前言上一篇介绍了GCD的基本概率,这篇主要基本实战,初步封装。一、封装成基本的structTip: 可以新建一个AsyncStuct.swift,直接当做工具类使用import Foundationpublic typealias Task = () ->原创 2022-03-15 13:54:51 · 4056 阅读 · 0 评论 -
Swift5多线程系列一GCD基础篇
Swift5多线程系列一提示:iOS多线程以GCD居多,swift也如是swift的GCD,使用比OC上更加简单易上手;文章目录Swift5多线程系列一前言一、第一部分:基础篇前言Grand Central Dispatch简称GCD,苹果官方推荐给开发者使用的首选多线程解决方案。多线程开发涉及的细节非常多原创 2022-03-15 13:30:10 · 3856 阅读 · 0 评论 -
仿SDWebImage
仿SDWebImage目标:模拟 SDWebImage 的实现说明:整体代码与昨天演练的基本一致,只是编写顺序会有变化! 在模仿 SDWebImage 之前,首先需要补充一个知识点:NSOperation自定义操作下载操作实现#import "NSString+Path.h"@interface DownloadImageOperation()/// 要下载图像的 URL 字符串@prop翻译 2015-08-15 23:25:23 · 514 阅读 · 0 评论 -
刀哥多线程现操作gcd-10-delay
延迟操作// MARK: - 延迟执行- (void)delay { /** 从现在开始,经过多少纳秒,由"队列"调度异步执行 block 中的代码 参数 1. when 从现在开始,经过多少纳秒 2. queue 队列 3. block 异步执行的任务 */ dispatch_time_t when = di翻译 2015-08-15 21:39:58 · 354 阅读 · 0 评论 -
刀哥多线程之主队列gcd-06-main_queue
主队列特点专门用来在主线程上调度任务的队列不会开启线程以先进先出的方式,在主线程空闲时才会调度队列中的任务在主线程执行如果当前主线程正在有任务执行,那么无论主队列中当前被添加了什么任务,都不会被调度队列获取主队列是负责在主线程调度任务的会随着程序启动一起创建主队列只需要获取不用创建dispatch_queue_t queue = dispatch_get_main_queue();翻译 2015-08-15 20:39:14 · 489 阅读 · 0 评论 -
刀哥多线程全局队列gcd-09-global_queue
全局队列是系统为了方便程序员开发提供的,其工作表现与并发队列一致全局队列 & 并发队列的区别全局队列 没有名称无论 MRC & ARC 都不需要考虑释放日常开发中,建议使用”全局队列”并发队列 有名字,和 NSThread 的 name 属性作用类似如果在 MRC 开发时,需要使用 dispatch_release(q); 释放相应的对象dispatch_barrier 必须使用翻译 2015-08-15 21:28:15 · 490 阅读 · 0 评论 -
多线程基本概论multithread
多线程基本概念进程进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内通过 活动监视器 可以查看 Mac 系统中所开启的进程线程进程要想执行任务,必须得有线程,进程至少要有一条线程程序启动会默认开启一条线程,这条线程被称为主线程或UI 线程线程是进程的基本执行单元,进程的所有任务都在线程中执行多线程一个进程中可以开启多条线程,每条线翻译 2015-08-15 23:03:07 · 878 阅读 · 0 评论 -
刀哥多线程笔记之gcd-02-block
block概念block 是 C 语言的是一种数据类型,可以当作参数传递是一组预先准备好的代码,在需要的时候执行动画 block 回顾self.demoView.center = CGPointMake(self.view.center.x, 0);// 此方法会立即执行动画 block[UIView animateWithDuration:2.0 delay:0 usingSpring翻译 2015-08-15 20:30:11 · 585 阅读 · 0 评论 -
刀哥多线程自动释放池autoreleasepool
自动释放池作用自动释放对象的所有 autorelease 的对象,在出了作用域之后,会被自动添加到最近创建的自动释放池中自动释放池被销毁或者耗尽时,会向池中所有对象发送 release 消息,释放池中对象自动释放池,在 ARC & MRC 程序中,同样有效高级面试题:自动释放池是什么时候创建的?什么时候销毁的?创建,运行循环检测到事件并启动后,就会创建自动释放池销毁:一次完整的运行循翻译 2015-08-15 23:41:12 · 1227 阅读 · 1 评论 -
说说UIViewController 那些事儿(上)
控制器view的多种创建方式控制器View的多种创建方式 首先需要自定义控制器view,作为根控制器通过没有没有同名的xib情况下alloc init创建的View JHViewController* vc = [[JHViewController alloc] init];结果:View的样式是空白的(透明)通过storyb创建,箭头所指向的控制器UIStoryboard* sb = [U原创 2016-12-29 01:20:02 · 341 阅读 · 0 评论 -
pthread
pthreadpthread 是 POSIX 多线程开发框架,由于是跨平台的 C 语言框架,在苹果的头文件中并没有详细的注释要查阅 pthread 有关资料,可以访问 http://baike.baidu.com导入头文件#import <pthread.h>pthread演练// 创建线程,并且在线程中执行 demo 函数- (void)pthreadDemo { /**翻译 2015-08-16 00:34:02 · 352 阅读 · 0 评论 -
总结SUMMARY
Summary多线程 多线程pthreadNSThread 创建线程的方式NSThread 的 Target线程状态线程属性资源共享原子属性线程间通讯GCD 同步 & 异步blockGCD 常用代码串行队列并发队列主队列同步任务的作用Barrier 异步全局队列延迟操作一次性执行调度组NSOperation 基本演练高级演练与 GCD 的对比翻译 2015-08-16 00:36:46 · 515 阅读 · 0 评论 -
NSThread线程对象
NSThread创建线程的方式准备在后台线程调用的方法 longOperation:- (void)longOperation:(id)obj { NSLog(@"%@ - %@", [NSThread currentThread], obj);}方式1:alloc / init - start- (void)threadDemo1 { NSLog(@"before %@",翻译 2015-08-16 00:15:55 · 727 阅读 · 0 评论 -
刀哥多线程Barrier异步gcd-08-barrier_async
Barrier 异步主要用于在多个异步操作完成之后,统一对非线程安全的对象进行更新适合于大规模的 I/O 操作代码演练准备工作@interface ViewController () { // 加载照片队列 dispatch_queue_t _photoQueue;}@property (nonatomic, strong) NSMutableArray *photoLi翻译 2015-08-15 21:26:27 · 578 阅读 · 0 评论 -
刀哥多线程之一次性代码gcd-11-once
一次性执行 有的时候,在程序开发中,有些代码只想从程序启动就只执行一次,典型的应用场景就是“单例”// MARK: 一次性执行- (void)once { static dispatch_once_t onceToken; NSLog(@"%ld", onceToken); dispatch_once(&onceToken, ^{ [NSThread s翻译 2015-08-15 21:45:31 · 339 阅读 · 0 评论 -
刀哥多线程GCD核心概念gcd
GCDGCD 核心概念将任务添加到队列,并且指定执行任务的函数任务使用 block 封装 任务的 block 没有参数也没有返回值执行任务的函数 异步 dispatch_async 不用等待当前语句执行完毕,就可以执行下一条语句会开启线程执行 block 的任务异步是多线程的代名词同步 dispatch_sync 必须等待当前语句执行完毕,才会执行下一条语句不会开启线程在当前翻译 2015-08-15 21:49:26 · 454 阅读 · 0 评论 -
多线程异步加载图片async_pictures
异步加载图片目标:在表格中异步加载网络图片目的:模拟 SDWebImage 基本功能实现理解 SDWebImage 的底层实现机制SDWebImage 是非常著名的网络图片处理框架,目前国内超过 90% 公司都在使用!要求:不要求能够打出来需要掌握思路需要知道开发过程中,每一个细节是怎么递进的需要知道每一个隐晦的问题是如何发现的搭建界面&数据准备代码数据准备@interface A翻译 2015-08-15 22:12:30 · 1302 阅读 · 0 评论 -
NSOperation类
NSOperation 抽象类NSOperation 是一个”抽象类”,不能直接使用抽象类的用处是定义子类共有的属性和方法在苹果的头文件中,有些抽象类和子类的定义是在同一个头文件中的子类: NSInvocationOperation (调用)NSBlockOperation (块)NSOperationQueue 队列已经学习过的抽象类UIGestureRecognizerCAA翻译 2015-08-16 00:50:59 · 613 阅读 · 0 评论 -
runloop
runloop作用使程序一直运行并接收用户的输入决定程序在何时处理哪些事件调用解耦(Message Queue)节省CPU时间(当程序启动后,什么都没有执行的话,就不用让CPU来消耗资源来执行,直接进入睡眠状态)模式RunLoop 在同一段时间只能且必须在一种特定的模式下运行如果要更换 Mode,必须先停止当前的 Loop,然后再重新启动 LoopMode 是保证滚动流畅的关键NS翻译 2015-08-16 00:58:41 · 821 阅读 · 0 评论 -
刀哥多线程之调度组gcd-12-group
调度组常规用法- (void)group1 { // 1. 调度组 dispatch_group_t group = dispatch_group_create(); // 2. 队列 dispatch_queue_t q = dispatch_get_global_queue(0, 0); // 3. 将任务添加到队列和调度组 dispatch_group翻译 2015-08-15 21:46:20 · 316 阅读 · 0 评论 -
SDWebImageInfo
SDWebImage简介iOS中著名的牛逼的网络图片处理框架包含的功能:图片下载、图片缓存、下载进度监听、gif处理等等用法极其简单,功能十分强大,大大提高了网络图片的处理效率国内超过90%的iOS项目都有它的影子框架地址:https://github.com/rs/SDWebImage获得框架进入终端输入以下命令git clone --recursive https://gith翻译 2015-08-16 01:03:59 · 2156 阅读 · 0 评论 -
刀哥多线程之并发队列gcd-05-dispatch_queue_concurrent
并发队列特点以先进先出的方式,并发调度队列中的任务执行如果当前调度的任务是同步执行的,会等待任务执行完成后,再调度后续的任务如果当前调度的任务是异步执行的,同时底层线程池有可用的线程资源,会再新的线程调度后续任务的执行队列创建dispatch_queue_t queue = dispatch_queue_create("com.itheima.queue", DISPATCH_QUEUE_C翻译 2015-08-15 20:38:07 · 1954 阅读 · 0 评论 -
刀哥多线程同步任务作用gcd-07-sync_task
同步任务的作用 同步任务,可以让其他异步执行的任务,依赖某一个同步任务例如:在用户登录之后,再异步下载文件!- (void)gcdDemo1 { dispatch_queue_t queue = dispatch_queue_create("com.itheima.queue", DISPATCH_QUEUE_CONCURRENT); dispatch_sync(queue, ^翻译 2015-08-15 20:41:06 · 367 阅读 · 0 评论