摘要:
#GCD常用方法---##一.延迟执行方法###NSTimer```objc [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(demo) userInfo:nil repeats:NO];```##... 阅读全文
摘要:
#GCD的线程间的通讯---- 刷新UI必须在主队列中刷新- 如果在子队列中刷新可能会不显示刷新结果```objc- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSLog(@"--------"); /... 阅读全文
摘要:
#GCD---###GCD的概念(自动管理)- GCD有两个核心概念 + 任务 :执行什么操作 + 队列 :用来存放任务- GCD的使用步骤 + 定制任务 * 确定想做的事 + 将任务添加到队列中 * GCD会自动将队列中的任务取出,放到对应的线程中执行 * FIFO 先进先出原则- 执行任务... 阅读全文
摘要:
##原子性和非原子性- 原子性(atomic默认) + 默认是原子性(给变量的setter方法加锁(自旋锁)) + 性能低些- 非原子性(nonatomic) + 不加锁 + 性能高些(适用于移动设备)---##atomic和Synchronized###互斥锁(Synchronized)和自旋锁(... 阅读全文
摘要:
#线程间通讯---- 从网络中下载一张图片放入到UIImageView中```objc- (void)touchBegin:(NSSet *)touches withEvent:(UIEvent *)event{ //1.下载图片 /* //测试执行时间 //NSDate *begin = [NSD... 阅读全文
摘要:
#互斥锁和自旋锁---###互斥锁(Synchronized:)- @synchornized(锁){} + 任意对象就是锁(常用self)- 下一线程会进入sleep状态,会自动从调度池中移除- 下一线程在上一线程解锁的时候再放到调度池中- 只要被synchronized扩住的代码, 就是被锁住的... 阅读全文
摘要:
#线程的状态(NSThread)---###新建状态- 创建线程```objcNSThread *thread = [NSThread alloc] initWithTarget:self selector:@selector(demo) withObject:nil];```###就绪状态- 启动... 阅读全文
摘要:
线程的基本概念 主线程(UI线程) 1.如何获取主线程 + 如果是主线程,那么名称叫做main/number = 1 + 如果不是主线程,那么名称就不叫座main/number != 1 + currentThread代表拿到当前线程,如果但前执行的方法是被主线程执行的,那么拿到的... 阅读全文