• 4-22 学习心得


    ARC 只能作用于 Objective-C 对象

    1.sleep(unsigned int);

    该函数给当前线程挂起给定时间(unsigned int)秒后继续执行下一句。(使程序睡眠)

    例如:

    int main(int argc, const char * argv[]) {

        @autoreleasepool {

            int i = 10;

            NSLog(@"开始阻塞了");

            dispatch_queue_t queue = dispatch_queue_create("lmp", nil);

            dispatch_sync(queue, ^{

                NSLog(@"&&&&&&&");

                sleep(i / 5);

                NSLog(@"----%d----",i);

                

            });

                    // ARC模式不需要这句,没开的就要写上

    //        dispatch_release(queue);

            NSLog(@"阻塞了两秒");

        }

        return 0;

    }

     

    打印结果:

    2015-04-22 14:03:14.229 学习-多线程[1255:47112] 开始阻塞了

    2015-04-22 14:03:14.230 学习-多线程[1255:47112] &&&&&&&

    2015-04-22 14:03:16.231 学习-多线程[1255:47112] ----10----

     

    2015-04-22 14:03:16.231 学习-多线程[1255:47112] 阻塞了两秒

     

    2. dispatch_semaphore 信号量基于计数器的一种多线程同步机制

    // 创建

    dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);

    dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

     

    semaphore计数大于等于1:程序继续运行

    计数-1:返回

    计数为0:等待       

    DISPATCH_TIME_FOREVER:一直等待

  • 相关阅读:
    第四次作业
    软工第三次作业
    第三次作业
    第二次作业
    团队第三次作业:Alpha版本发布
    软件工程团队作业--Alpha版本第二周小结
    软件工程团队作业--Alpha版本第一周小结
    团队第二次作业
    C++多态性总结
    第四次作业:结对编程
  • 原文地址:https://www.cnblogs.com/pocket-mood/p/4448244.html
Copyright © 2020-2023  润新知