- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self threadDemo4];
}
// MARK: NSThread 创建
- (void)threadDemo4 {
Person *p = [[Person alloc] init];
[p performSelectorInBackground:@selector(loadData) withObject:nil];
}
- (void)threadDemo3 {
// 1
NSLog(@"1--%@", [NSThread currentThread]);
// 是 NSObject 的一个分类方法,意味着所有的 NSObject 都可以使用此方法,在其他线程执行方法!
// 特点:没有thread字眼,一旦制定,就会立即在后台线程执行 selector 方法
// performSelectorInBackground 隐式的多线程方法
// 这种方法,在使用的时候更加灵活!
[self performSelectorInBackground:@selector(demo:) withObject:@"background"];
// 1
NSLog(@"2--%@", [NSThread currentThread]);
}
- (void)threadDemo2 {
// 1
NSLog(@"1--%@", [NSThread currentThread]);
// detachNewThreadSelector 会理解在后台线程执行 selector 方法
// detach => 分离一个自线程执行 demo: 方法
[NSThread detachNewThreadSelector:@selector(demo:) toTarget:self withObject:@"Detach"];
// 1/2?
NSLog(@"2--%@", [NSThread currentThread]);
}
- (void)threadDemo1 {
NSLog(@"1-------");
// 实例化/加载 => alloc(分配内存) / init(初始化)
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(demo:) object:@"Thread"];
// 启动线程
[thread start];
// 1/2?
NSLog(@"2------- %@", [NSThread currentThread]);
}
- (void)demo:(id)obj {
for (int i = 0; i<2; i++) {
NSLog(@"%@ %@", [NSThread currentThread], obj);
}
}
NSThread—创建
最新推荐文章于 2017-03-18 13:56:00 发布