iOS 多个线程对数组操作(遍历,插入,删除),实现一个线程安全的NSMutabeArray
2017-12-21 09:55
609 查看
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄
一、概念
1.含义:
@synchronized(self) {
}
//这个其实就是 一个加锁。如果self 其他线程访问,则会阻塞。这样做一般是用来对单
2.重写构造方法
@interface SHSafetyArray :
NSObject
{
@private
NSMutableArray *_mutableArray;
//声明数组
}
//遍历加锁
- (void) multi:(void (^)(NSObject*)) multipass;
@end
@implementation SHSafetyArray
//初始化
- (id)init {
if (self =
[super init])
{
_mutableArray = [[NSMutableArrayalloc]init];
}
return
self;
}
//遍历加锁
- (void)multi:(void (^)(NSObject *)) multipass {
@synchronized(self) {
for (NSObject *objin_mutableArray) {
multipass(obj);
}
}
}
@end
注意:这样就会线程安全的
谢谢!!!
一、概念
1.含义:
@synchronized(self) {
}
//这个其实就是 一个加锁。如果self 其他线程访问,则会阻塞。这样做一般是用来对单
2.重写构造方法
@interface SHSafetyArray :
NSObject
{
@private
NSMutableArray *_mutableArray;
//声明数组
}
//遍历加锁
- (void) multi:(void (^)(NSObject*)) multipass;
@end
@implementation SHSafetyArray
//初始化
- (id)init {
if (self =
[super init])
{
_mutableArray = [[NSMutableArrayalloc]init];
}
return
self;
}
//遍历加锁
- (void)multi:(void (^)(NSObject *)) multipass {
@synchronized(self) {
for (NSObject *objin_mutableArray) {
multipass(obj);
}
}
}
@end
注意:这样就会线程安全的
谢谢!!!
相关文章推荐
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- 将一个值插入到有序的单链表,实现插入、删除、输出等基本操作
- 高级数组,实现特定值的插入、查找、删除等操作
- 这是一个定时脚本,主要功能是遍历该文件夹下的所有文件并存储到数组,对数据中的文件进行操作,一个一个移动到指定的目录下,并删除原有文件
- 设计一个整型链表类list,能够实现链表节点的插入、删除、以及链表数据的输出操作。
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- (1)顺序表的操作 ① 输入一组整型元素序列,建立线性表的顺序存储结构。 ② 实现该线性表的遍历。 ③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该顺序表中删除或插入指
- C语言实现顺序表的插入、删除、查找、遍历等基本操作
- 笔试题:创建一个单链表,结点包含学生的学号,姓名,性别,年龄信息.写几个程序,实现按学生学号插入,查询,删除等操作.
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- 算法导论中十二章C++实现二叉查找树建立,插入,删除,遍历操作
- 用JAVA语言,编写一个链表类(双向链表),实现插入,删除,查找操作
- 【数据结构】采用数组的形式实现顺序表的建立、插入、删除等操作
- javascript 常见数组操作( 1、数组整体元素修改 2、 数组筛选 3、jquery 元素转数组 4、获取两个数组中相同部分或者不同部分 5、数组去重并倒序排序 6、数组排序 7、数组截取slice 8、数组插入、删除splice(需明确位置) 9、数组遍历 10、jQuery根据元素值删除数组元素的方)
- 二叉树:实现java操作二叉排序树(生成、插入、遍历、删除)
- c++实现单链表创建,删除,遍历,插入,修改操作
- vb 利用ADO.Net实现数据库的连接,修改,删除,插入操作
- c语言实现单链表的操作:创建,删除,插入,反转, 排序等
- java 模拟数组(Array)的查找、插入、删除、遍历
- 通过servlet来实现对Mysql进行连接、插入、修改、删除操作