Objective-c支持多线程的应用程序。
在@ synchronized()指令锁定的的代码段由单个线程使用。其他线程被阻塞,直到该线程退出保护的代码;
@ synchronized()指令作为任何
清单10-1
Listing 10-1
- (void)criticalMethod
{
}
清单10-2使
Listing 10-2
- (void)criticalMethod
{
}
清单10-3显示了一个普遍的做法。在关键代码执行前,得从Account类获取一个信号量,并用它来锁的关键部分。该Account类可以在
Listing 10-3
Account *account = [Account accountFromString:[accountField stringValue]];
// Get the semaphore.
id
@synchronized(accountSemaphore)
{
}
在Objective - C的同步功能支持递归和重载代码。在一个递归中,一个线程可以使用一个信号量几次。其他线程被阻止使用它,直到线程释
当同步代码快@synchronized()抛出一个异常,在Objecti