在iOS开发线程操作时,一般方法名决定是否开启新线程(async,sync),队列类型(全局队列,串行队列)决定开启多少条线程1.快速线程调用*开启后台线程执行任务[self performSelectorInBackground:@selector(test) withObject:nil];*回...
分类:
移动开发 时间:
2015-07-08 16:23:34
阅读次数:
122
IOS 上提供的多线程方法只要分为三种,1、NSThread 2、NSOperation 3、GCD ([self performSelectorInBackground:SEL withObject:id] 这个方法本质上也是一种多线程的方式),三种方式抽象程度越来越高,代码的编写难度也越来越简单。1、NSThread:
NSThread比其他两个都要更轻量级,但需要自己来管理线程的生...
分类:
移动开发 时间:
2015-06-03 11:57:27
阅读次数:
126
接上一篇
2、NSOperation
NSOperation是一个抽象类,本身并没有办法去直接使用,如果我们要使用它,就要去使用它的子类。IOS已经给我们提供了两个已经实现好的子类,NSInvocationOperation和NSBlockOperation。
对于这两个子类虽然IOS本身提供了start方法,不过我们一般不去直接使用它而需要借助另外一个类 NSOperatio...
分类:
移动开发 时间:
2015-06-03 11:51:12
阅读次数:
144
iosblog'siOS开发多线程篇—线程间的通信Cocoa为iOS线程间通信提供2种方式,1种是performSelector,另1种是Port。 先说第1种,performSelector,有以下几种: 第2种为NSMachPort方式。NSPort有3个子类,NSSocketPort、...
分类:
编程语言 时间:
2015-05-13 16:20:12
阅读次数:
175
Cocoa为iOS线程间通信提供2种方式,1种是performSelector,另1种是Port。 先说第1种,performSelector,有以下几种: 第2种为NSMachPort方式。NSPort有3个子类,NSSocketPort、NSMessagePort、NSMachPort,...
分类:
移动开发 时间:
2015-05-03 20:25:39
阅读次数:
182
同步,不具备开启线程的能力:dispatch_sync异步,具备开启线程的能力:dispatch_async并列队列:多个任务可以同时执行串行队列:一个任务执行完后,再执行下一个任务一个金典的列子:#define ZHGlobalQueue dispatch_get_global_queue(DIS...
分类:
移动开发 时间:
2015-04-16 12:08:10
阅读次数:
125
应用程序里面多个线程的存在引发了多个执行线程安全访问资源的潜在问题。两个线程同时修改同一资源有可能以意想不到的方式互相干扰。
iOS
提供了你可以使用的多个同步工具,从提供互斥访问你程序的有序的事件的工具等。以下个部分介绍了这些工具和如何在代码中使用他们来影响安全的访问程序的资源。
我们通过同一个例子来说明这些锁,当两个线程同时操作一个可变数...
分类:
移动开发 时间:
2015-04-14 13:06:17
阅读次数:
273
今天让我们来看一看ios线程中是怎么样通信的。
#import "ViewController.h"
@interface ViewController ()
{
UIImageView *_image;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super...
分类:
移动开发 时间:
2015-04-13 09:40:43
阅读次数:
133
类似于,我们加载网页时候的进度条,我们来看看它们是怎么工作的。
#import "ViewController.h"
@interface ViewController ()
{
UIProgressView *_view;
}
@end
@implementation ViewController
- (void)viewDidLoad {
...
分类:
移动开发 时间:
2015-04-13 09:37:32
阅读次数:
155
iOS 中 的 run loop 浅析
run loop解惑
runloop 虽然是与线程想关的重要概念,但 cocoa 中的 runloop 终是用得不多,观相关博文却也未得入门其“why”。所以浅习几日,得一粗陋分享浅文,作为笔记,写下其所以然。有不对或错误的地方,还望指教,不甚感激。
线程在执行完后,会被销毁。为了使线程能一直运行,咱们可以在线程里边弄个运行循环(run l...
分类:
移动开发 时间:
2015-04-12 01:26:34
阅读次数:
240