多线程之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 ...
随机推荐
- JavaScript Scoping and Hoisting
JavaScript中所有变量及函数名会自动提升 http://www.cnblogs.com/betarabbit/archive/2012/01/28/2330446.html
- Javascript倒计时组件new TimeSpan(hours, minutes, minutes)
function TimeSpan(h, m, s) { this.h = Number(h); this.m = Number(m); this.s = Number(s); } TimeSpan. ...
- 【Head-First设计模式】C#版-学习笔记-开篇及文章目录
原文地址:[Head-First设计模式]C#版-学习笔记-开篇及文章目录 最近一年断断续续的在看技术书,但是回想看的内容,就忘了书上讲的是什么东西了,为了记住那些看过的东西,最好的办法就是敲代码验证 ...
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转 ...
- [OpenCV] Feature Matching
得到了杂乱无章的特征点后,要筛选出好的特征点,也就是good matches. BruteForceMatcher FlannBasedMatcher 两者的区别:http://yangshen998 ...
- [mysql]增加用户 授权 远程登录
mysql创建用户和授权 1.创建用户: (注意:下面的指令,请在root用户下输入) CREATE USER "用户名" IDENTIFIED BY "密码" ...
- Spring基础—— Bean 的作用域
一.在 Spring Config 文件中,在 <bean> 元素的 scope 属性里设置 Bean 的作用域.默认为 singleton ,单例的. 二.在不引入 spring-web ...
- 淘宝API开发系列---阿里.聚石塔.开放平台的使用
好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此 ...
- JavaScrip的DOM操作
1.DOM的基本概念 DOM是文档对象模型,这种模型为树模型,文档是指标签文档:对象是指文档中每个元素:模型是指抽象化的东西 2.Windows对象操作 一.属性和方法 二.Window.open(& ...
- MVC+EF+esayui初试(一 布局加菜单显示)
最近都在做linq+ext.net的开发.这两天想学习下MVC和ef,刚好,在看ext.js的时候也喜欢上了esayui,所以就想用mvc+ef+esayui做一个汽车网后台管理来加强下.在这里也把我 ...