根据苹果官方文档,objc_release / objc_retain是线程安全的。不同的线程可以使用这些函数来增加或减少对象引用计数。在使用这些函数时,我们需要注意保证在多线程环境下不会同时访问同一个对象。例如,可以使用@synchronized关键字来控制对对象的访问,确保线程安全。
示例代码如下:
// 创建一个对象
NSObject *obj = [[NSObject alloc] init];
// 对象引用计数加1
objc_retain(obj);
// 在多线程环境下使用@synchronized关键字控制访问
@synchronized (obj) {
// do something
}
// 对象引用计数减1
objc_release(obj);