多线程
n71820
iOS程序员
展开
-
62 pthread
多线程实现方案一:(在iOS开发中几乎不用,仅作为了解)void *run(void *data) { NSThread *current = [NSThread currentThread]; for (int i = 0; i<20000; i++) { NSLog(@"run---%@", current); } return NULL;}- (IB原创 2015-08-25 01:02:15 · 457 阅读 · 0 评论 -
64 互斥锁 线程通信 线程同步
1>互斥锁:互斥锁使用格式@synchronized(锁对象) { // 需要锁定的代码 }注意:锁定1份代码只用1把锁,用多把锁是无效的互斥锁的优缺点优点:能有效防止因多线程抢夺资源造成的数据安全问题缺点:需要消耗大量的CPU资源互斥锁的使用前提:多条线程抢夺同一块资源相关专业术语:线程同步线程同步的意思是:多条线程按顺序地执行任务互斥锁,就是使用了线程同步技术2>原子和非原子属性:原创 2015-08-26 10:38:13 · 392 阅读 · 0 评论 -
63 NSThread的基本使用
NSThread创建线程的几种方式:1>创建、启动线程NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run:) object:@“参数”];[thread start];// 线程一启动,就会在线程thread中执行self的run:方法,object是run:方法的参数2>创建线程原创 2015-08-26 00:01:21 · 448 阅读 · 0 评论 -
61 多线程基本概念
多线程基本概念:1>进程:进程是指在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内2>线程:1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行3>线程任务的串行:1个线程中任务的执行是串行的如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务也就是原创 2015-08-25 00:57:09 · 482 阅读 · 0 评论 -
65 GCD基本使用
1>任务函数:用同步的方式执行任务dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);queue:队列block:任务用异步的方式执行任务dispatch_async(dispatch_queue_t queue, dispatch_block_t block);同步和异步的区别同步:在当前线程中执行异步:在另一条原创 2015-08-27 00:41:10 · 572 阅读 · 0 评论 -
66 GCD常用方法
1>延时操作:iOS常见的延时执行有2种方式调用NSObject的方法[self performSelector:@selector(run) withObject:nil afterDelay:2.0];// 2秒后再调用self的run方法使用GCD函数dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSE原创 2015-08-28 00:46:59 · 758 阅读 · 0 评论 -
71 自定义NSOperation
1>自定义NSOperation:自定义NSOperation的步骤很简单重写- (void)main方法,在里面实现想执行的任务重写- (void)main方法的注意点自己创建自动释放池(因为如果是异步操作,无法访问主线程的自动释放池)经常通过- (BOOL)isCancelled方法检测操作是否被取消,对取消做出响应2>自定义NSOperation示例:/** * 在main方法原创 2015-08-28 17:08:43 · 335 阅读 · 0 评论 -
70 NSOperation基本使用
1>NSoperation:NSOperation是个抽象类,并不具备封装操作的能力,必须使用它的子类使用NSOperation子类的方式有3种NSInvocationOperationNSBlockOperation自定义子类继承NSOperation,实现内部相应的方法2>NSInvocationOperation:创建NSInvocationOperation对象- (id)initW原创 2015-08-28 11:07:05 · 413 阅读 · 0 评论