如果我在一个方法中使用@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-推荐答案 strong>
在您发布的代码中,由于返回值不会受到试图同时访问同步代码的两个线程的影响,因此两者都可以工作。
如果返回值可能受到另一个线程的影响,您会希望 return 在同步块(synchronized block)中。
关于ios - 在具有返回值的方法中使用 @synchronized,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/22461571/
|