- (void)removeFromQueue:(NSString *)queryString
{
@synchronized (self)
{
if (self.queuedRequests.count)
[self.queuedRequests removeObject:queryString inRange:(NSRange){0, 1}];
}
}
1. synchronized 这个主要是考虑多线程的程序,这个指令可以将{ } 内的代码限制在一个线程执行,如果某个线程没有执行完,其他的线程如果需要执行就得等着。
Objective-C除了提供异常处理机制外,还提供了线程同步功能。异常处理在前面的“异常处理”章节有介绍。
@synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改。这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其它线程访问,起到线程的保护作用。 一般在公用变量的时候使用,如单例模式或者操作类的static变量中使用。
1. synchronized 这个主要是考虑多线程的程序,这个指令可以将{ } 内的代码限制在一个线程执行,如果某个线程没有执行完,其他的线程如果需要执行就得等着。
Account *account = [AccountaccoutFromString :[accountFiled stringValue]];
//获取信号量
id accountSemaphore = [Account semaphore];
@synchronized(accountSemaphore)
{
//关键代码
}
两种方式而已。
网友评论