zoukankan      html  css  js  c++  java
  • GCD的多线程实现方式,线程和定时器混合使用

    GCD (Grand Central Dispatch)

    性能更好,追求性能的话

    1.创建一个队列

    //GCD的使用

        //创建一个队列

        dispatch_queue_t queue = dispatch_queue_create("test", NULL);

        //创建异步线程

        dispatch_async(queue, ^{

            //多线程

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

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

            }

            

            //回到主线程执行

            dispatch_sync(dispatch_get_main_queue(), ^{

                //主线程

                if ([NSThread isMainThread]) {

                    NSLog(@"是主线程");

                }

            });

        });

    自动释放池

    1.

    NSAutoreleasePool *pool = [[NSAutoreleasePoolalloc] init];

        

        [pool release];

    2.苹果推荐我们使用以下这种方式,这种方式是在iOS5.0之后才会出现的

    @autoreleasepool {

            <#statements#>

        }

     

    三:线程和定时器的使用

    使线程能时续活跃,事件循环。

    定时器定义之后,在下面添加以下代码

    [[NSRunLoop currentRunLoop] run];//代码运行于此,将不再执行下去,整个线程出于活跃。当线程中不再有需要执行的事件时,再会放开事件循环,代码继续执行下去。

  • 相关阅读:
    tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners
    C++ 第八天
    C++ 第七天
    C++ 第四天
    c++ 编译报错汇总(随时更新)
    C++ 第二天
    C++ 第三天
    c++ 继承(二)
    c++ 继承(一)
    回调函数
  • 原文地址:https://www.cnblogs.com/wskgjmhh/p/3475480.html
Copyright © 2011-2022 走看看