@ সিংক্রোনাইজড পারস্পরিক বর্জনীয়তা অর্জনের জন্য "লক" এবং "আনলক" ব্যবহার করে না? কীভাবে এটি তখন লক / আনলক করে?
নিম্নলিখিত প্রোগ্রামটির আউটপুট কেবলমাত্র "হ্যালো ওয়ার্ল্ড"।
@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];
}
lock
বস্তুর প্রতি কলের উপর তৈরি করা হয়, তাই একটি মামলা হবে না যেখানে এক @synchronized
অন্য খুঁজে ব্লক কেশ। এবং এর অর্থ কোনও পারস্পরিক বর্জন নেই)) অবশ্যই, উপরের উদাহরণটি অপারেশন করছে main
, সুতরাং যাইহোক বাদ দেওয়ার মতো কিছুই নেই, তবে সেই কোডটি অন্য কোথাও অন্ধভাবে অনুলিপি করা উচিত নয়।