美文网首页
iOS—多线程

iOS—多线程

作者: HI宏宇 | 来源:发表于2016-03-02 20:20 被阅读0次

    线程是用来执行任务的,线程彻底执行完任务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;//子线程执行完毕跳的主线程 切换线程

    相关文章

      网友评论

          本文标题:iOS—多线程

          本文链接:https://www.haomeiwen.com/subject/gbmnkttx.html