多线程与块编程:原理、应用与内存管理
1. 线程优先级设置
在设置线程优先级时需要谨慎考虑。一般来说,应仅使用 0 到 0.5 的范围。只有在没有其他选择的情况下,才将线程优先级设置高于默认级别,而不要仅仅因为操作是 CPU 密集型且希望其运行更快就提高优先级。例如,若程序将自身优先级设置过高,可能会导致捕获应用程序丢帧。
2. 线程同步
可以通过多种方式同步两个线程,执行此类同步的类都遵循 NSLocking 协议,该协议定义了 -lock 和 -unlock 两个方法。
- NSLock :实现了互斥锁(mutex)。同一时间只能有一个线程锁定它,当一个线程发送 -lock 消息时,其他发送相同 -lock 消息的线程将被阻塞,直到发送相应的 -unlock 消息。适用于保护较短的关键部分。示例代码如下:
static NSLock *lock;
static NSMutableArray *messages;
void recordLogMessage(NSString *msg)
{
[lock lock];
@try
{
[messages addObject: msg];
NSLog(@"%@", msg);
}
@finally
{
[lock unlock];
}
}
<
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



