随笔分类 -  多线程

摘要:无论是挂起,还是取消全部,都无法取消正在执行的操作。 我们可以自定义NSOperation,实现取消正在执行的操作。其实就是拦截main方法。 main方法: 1、任何操作在执行时,首先会调用start方法,start方法会更新操作的状态(过滤操作,如过滤掉处于“取消”状态的操作)。 2、经star 阅读全文
posted @ 2017-01-11 17:56 ys123456789 阅读(3054) 评论(0) 推荐(0)
摘要:1、纯C语言,提供了非常多的强大的函数。 2、GCD的核心: 将任务添加到队列。(任务:执行什么操作。队列:用来存放任务,特点是先进先出) 3、GCD的使用步骤: -->创建任务(即确定要做的事情)。GCD中的任务是用block封装的。 -->将任务添加到队列中。 >GCD会自动将队列中的任务取出, 阅读全文
posted @ 2017-01-09 17:28 ys123456789 阅读(206) 评论(0) 推荐(0)
摘要:线程间通讯:把一个线程中计算的结果传递到另一个线程中使用。 示例场景:子线程下载网络图片,回主线程更新UI。 NSThread示例代码: 关键代码: GCD示例代码: NSOperation示例代码: 阅读全文
posted @ 2017-01-09 17:04 ys123456789 阅读(184) 评论(0) 推荐(0)
摘要:1 /* 2 线程的生命周期(状态): 3 1、新建状态:创建了新线程(alloc init) 4 2、就绪状态:线程对象添加到“可调度线程池”,等待被CPU调度执行(thread star) 5 3、运行状态:正在被CPU调度执行(执行一半CPU去执行别的线程,将进入就绪状态) 6 4、阻塞状态:休眠或等待同步锁(休眠时间... 阅读全文
posted @ 2017-01-09 12:22 ys123456789 阅读(445) 评论(0) 推荐(0)
摘要:1 // CACurrentMediaTime:获取绝对时间:从新世纪到现在的绝对时间,常用来计算耗时操作的时间差(结束时间 - 开始时间) 2 double start = CACurrentMediaTime(); 3 double end = CACurrentMediaTime(); 4 5 double duration = end ... 阅读全文
posted @ 2017-01-09 12:06 ys123456789 阅读(329) 评论(0) 推荐(0)
摘要:NSThread创建子线程并执行的三种方式 1、通过NSThread的类方法: .1>不能拿到线程对象 .2>系统自动启动线程 2、通过NSObject (NSThreadPerformAdditions)分类方法 .1>不能拿到线程对象 .2>系统自动启动线程 3、通过构造方法创建子线程对象,al 阅读全文
posted @ 2017-01-09 11:02 ys123456789 阅读(428) 评论(0) 推荐(0)