您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页GCD semphore 造成死锁的代码记录

GCD semphore 造成死锁的代码记录

来源:二三四教育网
    dispatch_semaphore_t semphore = dispatch_semaphore_create(0);
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_time_t waitetime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(50 * NSEC_PER_SEC));
    
    dispatch_async(queue, ^{
        dispatch_async(dispatch_get_main_queue(), ^{
            NSLog(@"main");
            dispatch_semaphore_signal(semphore);
        });
        NSLog(@"async");
    });
    
    NSLog(@"lock");
    bool result = dispatch_semaphore_wait(semphore, waitetime);
    
    NSLog(@"unlock");
    if (result != 0) {
        NSLog(@"锁住了");
    }
    dispatch_semaphore_t semphore = dispatch_semaphore_create(0);
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_time_t waitetime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(50 * NSEC_PER_SEC));


    dispatch_async(dispatch_get_main_queue(), ^{
            NSLog(@"main");
            dispatch_semaphore_signal(semphore);
    });
    
    NSLog(@"lock");
    bool result = dispatch_semaphore_wait(semphore, waitetime);
    
    NSLog(@"unlock");
    if (result != 0) {
        NSLog(@"锁住了");
    }

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务