不同业务场景,有时会碰到大量数据的情况,在请求完数据后会通过model映射到对应的数组或者字典中,从而对数组进行操作,而多个线程同时对同一数组进行取舍时内容就会出错,为了避免这种情况可以使用@synchronized关键字来声明来创建一个互斥锁,保证此时没有其它线程对锁定对象进行修改;synchronized是oc的一个锁定令牌,防止锁定对象在同一时间内被其它线程访问,起到线程的保护作用。
- (void)add:(*item item)array
{
@synchronized (array) {
[array addObject :item];
}
}
- (void)rem:(*item item)array
{
@synchronized (array) {
[array removeobject:item];
}
}