多线程技术

多线程: 串行->针对一个线程中有多个任务,按顺序执行。

   并行->多个线程的执行情况,同时执行。

多线程优点: 提高程序的性能

缺点:  需要开销,程序更加复杂。

 

多线程技术方案: pthread 适用于unix, Linux, Windows,可跨平台

NSThread 面向对象,简单易用

GCD 充分利用设备的多核,旨在替代NSThread等线程技术

NSOperation 基于GCD底层是 GCD,比GCD 多了一些简单实用的功能。

 

pthread使用:

 

//创建线程

pthread_t thread = nil;

pthread_create(&thread, NULL, run, NULL);

 

 

void * _Nullable run(void * _Nullable param){

 

//执行耗时操作,放在这个方法

    NSLog(@"%@",[NSThread currentThread]);

    

    return NULL;

}

 

NSThread 使用:(创建线程的几种方法)

 1, 

     NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(runOnBackgroundThread) object:nil];

    [thread start];

2,

[NSThread detachNewThreadWithBlock:^{

        NSLog(@"%@",[NSThread currentThread]);

        NSLog(@"耗时操作");

    }];

3,

[NSThread detachNewThreadSelector:@selector(runOnBackgroundThread) toTarget:self withObject:nil];

 

4,

[self performSelectorInBackground:@selector(runOnBackgroundThread) withObject:nil];

 

设置线程的属性:

 

     thread.threadPriority = 1.0;  //设置线程的优先级,  从0到1, 优先级越高, 被CPU调到的概率越大。

    thread.name = @"线程1"; //设置线程的名称

线程的生命周期 : 当线程内任务执行完毕后会被释放。

转载于:https://www.cnblogs.com/dashengios/p/10370827.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值