相关疑难解决方法(0)

如何在Objective-C中锁定/解锁@synchronized?

@synchronized不使用"锁定"和"解锁"来实现互斥吗?那怎么做锁定/解锁呢?

以下程序的输出仅为"Hello World".

@interface MyLock: NSLock<NSLocking>
@end

@implementation MyLock

- (id)init {
    return [super init];
}

- (void)lock {
    NSLog(@"before lock");
    [super lock];
    NSLog(@"after lock");
}

- (void)unlock {
    NSLog(@"before unlock");
    [super unlock];
    NSLog(@"after unlock");
}

@end


int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    MyLock *lock = [[MyLock new] autorelease];
    @synchronized(lock) {
        NSLog(@"Hello World");
    }

    [pool drain];
}
Run Code Online (Sandbox Code Playgroud)

synchronization objective-c

198
推荐指数
3
解决办法
18万
查看次数

标签 统计

objective-c ×1

synchronization ×1