OGeek|极客世界-中国程序员成长平台

标题: ios - 在具有返回值的方法中使用 @synchronized [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 06:54
标题: ios - 在具有返回值的方法中使用 @synchronized

如果我在一个方法中使用@synchronized指令,并且该方法有一个返回值BOOL或NSString,我应该使用哪个?

@synchronized(self)  {
    if (![self hasSource]) {
        *source = nil;
        return YES;
    } 


}
return NO;

=== 或 ====

@synchronized(self)  {
    if (![self hasSource]) {
        *source = nil;
        return YES;
    } 

    return NO;
}



Best Answer-推荐答案


在您发布的代码中,由于返回值不会受到试图同时访问同步代码的两个线程的影响,因此两者都可以工作。

如果返回值可能受到另一个线程的影响,您会希望 return 在同步块(synchronized block)中。

关于ios - 在具有返回值的方法中使用 @synchronized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22461571/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4