zoukankan      html  css  js  c++  java
  • 多线程NSThread

    一些基础知识

        //线程就是进程中并发执行的一些代码片段
        /*
         网络传输方式
         同步:所有任务放到一个线程中完成,只要当前任务没有完成  那么下一个任务就处于堵塞的状态
         异步:多个任务放到多个线程中完成  即使当前任务没有完成   那么也不会影响到其他任务的执行
         
         //数据传输方式
         串行:一个线程中只有当前任务完成后  下一个任务才开始执行
         并发:多个线程完成不同的任务 互不干扰
         
         一般的时候   都是说主线程同步异步,工作线程串行并发
         */
        /*
         线程种类
         1、主线程   UI MainThread  平时写的所有代码都是在主线程中进行的,主线程是系统自动生成的,不能修改
         2、工作线程  worker Thread 又称为次线程   secondary Thread   防止主线程出现假死状态  同时也能提高数据的请求和加载速率
         
         
         
         */

    -(void)buttonClick:(id)sender
    {
        UIButton * button = (UIButton *)sender;
        if (button.tag == 1) {
            NSNumber * num = [NSNumber numberWithInt:100];
            //创建工作线程
            //<1>
            //只需要创建线程  不需要手动开启线程
            //线程对象只要被创建   就会自动执行任务
            [NSThread detachNewThreadSelector:@selector(threadMain1:) toTarget:self withObject:num];
        }else
        {
            NSNumber * num = [NSNumber numberWithInt:100];
            //创建线程
            //<2>
            NSThread * thread = [[NSThread alloc]initWithTarget:self selector:@selector(threadMain2:) object:num];
            //必须手动开启线程
            [thread start];
        }
    
    }
    -(void)threadMain1:(NSNumber *)num
    {
        NSLog(@"线程1开始");
        for (int i = 0 ; i<[num intValue]; i++) {
            NSLog(@"线程1 i=%d",i);
            //控制线程的执行时间
            [NSThread sleepForTimeInterval:0.1];
        }
        //线程结束  也就是线程退出
        NSLog(@"线程1结束");
    }
    -(void)threadMain2:(NSNumber *)num
    {
        NSLog(@"线程2开始");
        for (int i = 0 ; i<[num intValue]; i++) {
            NSLog(@"i=%d",i);
            [NSThread sleepForTimeInterval:1];
        }
        NSLog(@"线程2结束");
    }
     
  • 相关阅读:
    Unity3D实践系列08, MonoBehaviour类的各种触发事件
    Unity3D实践系列07,组件的启用或禁用开关,物体的的可见或不可见开关,以及相应事件
    Unity3D实践系列06,球体撞击物体游戏
    Linux tee的花式用法和pee
    bash内置命令mapfile:读取文件内容到数组
    Perl正则表达式引用
    Perl文件句柄引用
    透明代理、正向代理、反向代理的区别说明
    Perl回调函数和闭包
    一文搞懂:词法作用域、动态作用域、回调函数、闭包
  • 原文地址:https://www.cnblogs.com/huoxingdeguoguo/p/4678140.html
Copyright © 2011-2022 走看看