IOS 多线程的运用

来源:互联网 发布:淘宝白号怎么养 编辑:程序博客网 时间:2024/04/26 01:20

gcd

//创建一个队列

dispatch_queue_t queue = dispatch_get_global_queue("test",0);

//创建一个异步线程

dispatch_async(quene,^{

---异步线程执行代码

});

//回到主线程

dispatch_sync(dispatch_get_main_queue(),^{

----回到主线程执行的代码

});


//创建新的子线程需要添加制动释放池管理内存

[sele performSelectorInBackground:@selector(mutableThread) withObject:nil];

-(void)mutableThread{

//自动释放池

NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];

--------

[pool release];

}


//多线程中运用 NStimer(定时器);需要用到NSRunLoop

[self performSelectorInBackground:@selector(mutiThread) withobject:nil];

-(void)mutiThread{

//自动释放池

NSAutoreleasePool* pool=[[NSAutoreleasePool alloc] init];

[NSTimer scheduledTimerInterval:1 target:self selector:@selecter(timerAcrtion) userInfo:nil repeats:yes];

[pool release];

[[NSRunLoop currentRunLoop] run];

}

-(void) timerAction{

-----

}


//-----------另一种NSRunLoop 中加入 NSTimer

NSTimer *timer=[NSTimer  timerWithTimeInterval:1 target:self selector:@selecter(timerAcrtion) userInfo:nil repeats:yes];

[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];

[[NSRunLoop currentRunLoop] run];


0 0