iOS—多线程

线程是用来执行任务的,线程彻底执行完任务A才能去执行任务B。为了同时执行两个任务,产生了多线程。 线程执行完毕就被销毁

1、进程就是在操作系统中运行的程序,专业点说,进程是应用程序的执行实例

2、进程不能执行任务

3、进程在运行时创建的资源随着进程的终止而死亡

线程执行完毕就会被销毁。

子线程:由主线程来创建,用来帮助主线程执行程序的后台处理任务。如果子线程A中又创建一个子线程B,在创建之后,这两者就是相互独立的,多个子线程之间效果上可以同时执行。

一个进程中可以有多个线程,并且所有线程都在该进程的虚拟地址空间中,可以使用进程的全局变量和系统资源。

多线程(NSThread)

初始化有俩种方式

NSThread *thread=[[NSThread alloc]initWithTarget:self selector:@selector(子线程调用的方法) object:@"可以传进子线程方法的参数id类型"]; 

[NSThread detachNewThreadSelector:@selector(thraed:) toTarget:self withObject:@"thread"];第二种初始化

注释:第一种初始化方式需要手动开启任务 第二种不需要

[thraed start];

子线程调用的其他经常常用的方法或属性:

[NSThread currentThread]可以得到当前的线程

eg;"{number = 22, name = main}", number系统分配的数字 name是线程的名字 其中主线程number是1 name=main 

BOOL isMainThread 判断是否为主线程

BOOL executing 判断是否正在执行

BOOL finished 判断是否完成

BOOL cancelled判断是否取消

- (void)cancel  取消

- (void)start 开始

- (void)main  设main线程

[NSThread exit];//退出当前线程 (线程先取消状态下才能推出)

+ (BOOL)setThreadPriority:(double)p;设置优先级

+ (void)sleepForTimeInterval:(NSTimeInterval)ti;设置线程休眠时间

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(nullable id)arg waitUntilDone:(BOOL)wait;//子线程执行完毕跳的主线程 切换线程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案...
    张战威ican阅读 676评论 0 0
  • 在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案...
    伯恩的遗产阅读 275,501评论 251 2,329
  • 概览 大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最...
    CocoLeo阅读 902评论 1 9
  • iOS系统是相对封闭的系统,App各自在各自的沙盒(sandbox)中运行,每个App都只能读取iPhone...
    傲世情缘阅读 2,216评论 0 1
  • 熟悉我的人都知道,我有一个闺蜜,从小玩到大的那种。 从幼儿园开始我们就厮混在一起,同一所小学一个班级。那个眼界和认...
    鱼小婧阅读 860评论 13 9

友情链接更多精彩内容