多线程之NSThread

NSThread是苹果提供给开发者的一个可以操作线程的对象。
既然是对象,就从属性和方法两个方面介绍。
属性有描述性的作用。

描述

  • 线程优先级
@property double threadPriority; 
// 由高到低
// NSQualityOfServiceUserInteractive 用于直接于UI交互的任务,比如渲染UI到屏幕上。
// NSQualityOfServiceUserInitiated 用于用户明确请求的任务,且执行结果需要立即展示,以便用户近一步操作。比如,在消息列表中加载一个可以被选中的邮件。
//  NSQualityOfServiceDefault 默认优先级
// NSQualityOfServiceUtility 普通优先级
//  NSQualityOfServiceBackground 后台优先级
  • 线程名称
    给线程起一个合理的名字,方便查看。
  • 线程运行状态
    是否正在进行中
    是否已经结束
    是否可以取消线程
    是否为主线程

操作

  • 开启线程
  • 设置线程名称
  • 取消线程
  • 退出当前线程
  • 设置线程优先级

NSThreadPerformAdditions分类

这个分类里的方法,能够实现线程之间通信的功能

// 直接在主线程中,执行某个方法
- (void)performSelectorMainThread:(SEL)aSelector withObject:(nullable id)arg waitUntilDone:(Bool)wait modes:(nullable NSArray<NSString *> *)array;
// 在制定的 NSThread线程中执行某个方法
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(nullable id)arg waithUntilDone:(Bool)wait modes:(nullable NSArray<NSString *> *)array;
// 在后台线程中执行某个方法
- (void)performSelectorInBackground:(SEL)aSelector withObject:(nullable id)arg;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS中的多线程技术主要有NSThread, GCD和NSOperation。他们的封装层次依次递增,其中 NST...
    RobinYu阅读 179评论 0 0
  • iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...
    一叶知秋0830阅读 415评论 0 0
  • 开启线程 分离主线程创建:创建线程后会自动执行,但是线程外部不可获取到该线程对象detachNewThreadWi...
    Mr_Pt阅读 1,098评论 0 1
  • Pthread 使用pthread必须盗用头文件#import <pthread.h> 可以使用[NSThread...
    是我始终拒绝成长吗阅读 708评论 0 0
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,120评论 0 4