您的位置:首页 > 其它

synchronized在多线程情况下的使用

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

- (void)add:(*item item)array
{
@synchronized (array) {
[array addObject :item];
}
}



- (void)rem:(*item item)array
{
@synchronized (array) {
[array removeobject:item];
}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: