多线程之NSThread和NSObject
#pragma mark - NSThread实现多线程
/*
// 获取当前线程
NSLog(@"currentThread = %@", [NSThread currentThread]); // 获取主线程
NSLog(@"mainThread = %@", [NSThread mainThread]); // 判断当前线程是否为主线程
NSLog(@"isMainThread = %d", [NSThread isMainThread]);
*/
#pragma mark - NSThread手动开辟子线程
/*
// 参数1:target
// 参数2:方法
// 参数3:传参
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(sayHi) object:nil]; // 让线程开启
[thread start]; // 使用NSThread和NSObject实现的开辟线程,系统会自动释放,不用自己关闭线程,写不写都行
// 结束线程的两种方式:
// 方式一:取消线程
[thread cancel]; // 不是真正的说取消就取消,而是给线程发送一个信号,通过这个信号进行取消的 // 方式二:直接将线程退出
[NSThread exit];
*/
#pragma mark - NSThread自动开辟子线程
/*
// 线程自动开启
// 把手动开辟的target和selector两个参数顺序反着来
[NSThread detachNewThreadSelector:@selector(sayHi) toTarget:self withObject:nil];
*/
#pragma mark - NSObject开启子线程
// 使用performSelectorInBackground开辟子线程
// 第一个参数:selector
// 第二个参数:方法传递的参数
[self performSelectorInBackground:@selector(sayHi) withObject:@"test"];
self.view.backgroundColor = [UIColor yellowColor];
}
- (void)sayHi {
// 回到主线程修改背景颜色
// 参数1:selector
// 参数2:传参
// 参数3:是否等到子线程的任务完成之后进入主线程
[self performSelectorOnMainThread:@selector(mainThreadChangeColor) withObject:nil waitUntilDone:YES];
}
- (void)mainThreadChangeColor {
self.view.backgroundColor = [UIColor lightGrayColor];
NSLog(@"%@", [NSThread currentThread]);
NSLog(@"%@", [NSThread mainThread]);
}
多线程之NSThread和NSObject的更多相关文章
- 多线程之NSThread
关于多线程会有一系列如下:多线程之概念解析 多线程之pthread, NSThread, NSOperation, GCD 多线程之NSThread 多线程之NSOperation 多线程之GCD一, ...
- 【原】iOS多线程之NSThread、NSOperationQueue、NSObject和GCD的区别
区别: Thread: 是这几种方式里面相对轻量级的,但也是使用起来最负责的,你需要自己管理thread的生命周期,线程之间的同步.线程共享同一应用程序的部分内存空间, 它们拥有对数据相同的访问权限. ...
- iOS多线程之NSThread详解
在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程.由于iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面.iOS多线程的使 ...
- iOS-多线程之NSThread详解
前言 线程是用来执行任务的,线程彻底执行完任务A才能去执行任务B.为了同时执行两个任务,产生了多线程. 我打开一个视频软件,我开辟一个线程A让它执行下载任务,我开辟一个线程B,用来播放视频.我开辟两个 ...
- iOS多线程之NSThread使用
iOS中的多线程技术 我们在iOS开发项目过程中,为了解决UI界面操作不被耗时操作阻塞,我们会使用到多线程技术.在iOS开发中,我们主要会用到三种多线程操作技术:NSThread,NSOperatio ...
- IOS多线程之NSThread
参考:http://blog.csdn.net/totogo2010/article/details/8010231 1 简介 NSThread: 优点:NSThread 比其他两个轻量级 缺点:需要 ...
- iOS开发多线程之NSThread
一.NSThread的属性与方法 1.NSThread 类方法 类方法,顾名思义通过类名直接调用的方法 1. + (void)detachNewThreadWithBlock:(void (^)(vo ...
- iOS-----多线程之NSThread
多线程 iOS平台提供了非常优秀的多线程支持,程序可以通过非常简单的方式来启动多线程,iOS平台不仅提供了NSThread类来创建多线程,还提供了GCD方式来简化多线程编程,提供了NSOperatio ...
- iOS开发线程之NSThread
1.初始化 - (instancetype)init API_AVAILABLE(macos(10.5), ios(2.0), watchos(2.0), tvos(9.0)) NS_DESIGNAT ...
随机推荐
- oracle 空间数据库说明
转:http://blog.csdn.net/jing_xin/article/details/4355642 由于最近弄一些空间数据,所以找了些oracle空间数据库的一些知识.下面是汇总: Ora ...
- Angular.js表单以及与Bootatrap的使用
首先从angular.js的目录开始,如下图,知道了我们要学什么,然后再开始有目的的学习与对比. 1.从表达式开始: ng-app指令初始化一个 AngularJS 应用程序. ng-init指令初始 ...
- jquery.uploadify 异常 “__flash__removeCallback”未定义
使用场景结合artdialog弹出框使用时发生“__flash__removeCallback”未定义,原因在于artdialog基于iframe加载的uloadify,在关闭artdialog的时候 ...
- WCF安全2-非对称加密
概述: 数字签名和加密依赖于相应的加密算法 自变量:加密前的数据.密钥 因变量:加密后的数据 加密算法分类:根据加密和解密这两种步骤采用的密钥的是否相同进行分类 相同:对称加密 不相同:非对称加密 非 ...
- apple Swift教程大全,希望对你有帮助!
1)apple Swift编程入门文档- http://gashero.iteye.com/blog/2075324 一位大神写的关于Swift的一些介绍和简单的使用,里面介绍了Swift和其他语言的 ...
- 使用Html5+C#+微信 开发移动端游戏详细教程 总目录
(一).序(关于作者创业失败的感想) (二).准备工作&开发环境 (三).使用html5引擎搭建游戏框架 (四).游戏中层的概念与设计 (五).游戏图像的加载与操作 (六).游戏界面布局与性能 ...
- iOS-金额小写转大写
一.目的 1. 金额小写转化成大写. 如 123456.65 --> 壹拾贰万叁仟肆佰伍拾陆元陆角伍分 2. 只能处理13位数的金额,并且只能处理到小数点后两位. 二.代码 #import &q ...
- Direct3D11学习:(六)渲染管线
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 这篇文章主要讲解渲染管线(rendering pipeline)的理论知识. 渲染管线是指:在给定一个3D场景的 ...
- FUNCS.H中的函数声明
/*************************************************************************** ...
- 解决tomcat was unable to start within问题
这个问题可能大家都熟悉,以前碰到这个问题,重新启动一次eclipse就好了,随着我的一个项目的增大,我发现这种情况越来越多,到底是怎么回事? 出现这个情况的原因有两个,要么是你的数据库连接connec ...