zoukankan      html  css  js  c++  java
  • 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:一直等待

  • 相关阅读:
    LeetCode 167. 两数之和 II
    LeetCode 97. 交错字符串
    LeetCode 35. 搜索插入位置
    LeetCode 120. 三角形最小路径和
    LeetCode 350. 两个数组的交集 II
    LeetCode 174. 地下城游戏
    LeetCode 315. 计算右侧小于当前元素的个数
    LeetCode 309. 最佳买卖股票时机含冷冻期
    面试题 17.13. 恢复空格
    去除字符串首尾空格
  • 原文地址:https://www.cnblogs.com/pocket-mood/p/4448244.html
Copyright © 2011-2022 走看看