iOS学习笔记31-多线程深入

  /**

     *创建一个队列(串行)

     **/

    dispatch_queue_t queue1 = dispatch_queue_create("queue1", DISPATCH_QUEUE_SERIAL);

    

    /**

     *添加代码块 执行线程的路径

     **/

    dispatch_async(queue1, ^{

        for (int i = 0; i<100; i++) {

            NSLog(@"线程一,%d",i);

        }

    });

用C语言函数的方式创建线程

    dispatch_sync_f(queue1, NULL, treadFun);//用线程函数的方式作为线程的路径

void treadFun(){

    for (int i =0 ; i<100; i++) {

        NSLog(@"线程2,%d",i);

    }

}

//    dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, 2*NSEC_PER_SEC);

//    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

//    dispatch_after(time, queue, ^{

//        NSLog(@"222");

//    });

上面代码等价于

 NSLog(@"11111");

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        NSLog(@"2222222");

    });

/**

 *过一段时间后才执行

 1,dispatch_after

 2,NSObject performSelector

 3,timer 定时器方法

 **/

 [super viewDidLoad];

    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(myfun) userInfo:nil repeats:YES];

    

    [timer invalidate];

//    [self performSelector:@selector(myfun) withObject:nil afterDelay:5.0];

原文地址:https://www.cnblogs.com/adodo/p/5226557.html