如果我在一个方法中使用@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;
}
在您发布的代码中,由于返回值不会受到试图同时访问同步代码的两个线程的影响,因此两者都可以工作。
如果返回值可能受到另一个线程的影响,您会希望 return
在同步块(synchronized block)中。
关于ios - 在具有返回值的方法中使用 @synchronized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22461571/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |