美文网首页
【iOS开发】数组的线程安全

【iOS开发】数组的线程安全

作者: xiacheng | 来源:发表于2017-05-22 20:04 被阅读716次

参考文章:
关于数组线程安全问题
ios多线程同时访问数组问题
Cocoa中的线程安全类

参考上面的文章,基本上有2种方法来保证数组的线程安全。

1、在使用数组的地方都进行copy操作。未经过验证。

NSArray *arr = [NSArray arrayWithArray:A];

2、封装一个Bean来把线程安全的相关代码进行封装。

这里又可以分成两种方案

1)通过继承NSMutableArray 来实现

优点:
1、只要实现其primitive method,有些方法可以省略。
2、可以使用[]来访问元素

缺点:NSMutableArray 继承时必须要实现其primitive method,如果未实现,则会造成程序崩溃。但是由于继承的关系,即使未实现其primative method,在使用时编译器仍然会提示。如果不知道NSMutableArray的这一属性,很容易造成崩溃。

2)通过一个继承于NSObject 的类,把NSMutableArray 做为此类的一个属性,所有的操作都针对此NSMutableArray来进行,并进行线程保护。

优点:
1、因为NSMutableArray 继承时必须要实现其primative method,如果未实现,则会造成程序崩溃。但是由于继承的关系,即使未实现其primative method,在使用时编译器仍然会提示。如果不知道NSMutableArray的这一属性,很容易造成崩溃。
缺点:
1、不能使用下标来访问元素

结论:我觉得最好的方法还是使用继承于NSObject的类,虽然访问元素的方法麻烦一点,但是更安全,可控性更高,不容易出现问题。

相关文章

  • 【iOS开发】数组的线程安全

    参考文章:关于数组线程安全问题ios多线程同时访问数组问题Cocoa中的线程安全类 参考上面的文章,基本上有2种方...

  • 【iOS开发】iOS中的线程安全

    参考文章:iOS开发多线程篇—线程安全

  • IOS多线程安全(线程锁)

    线程安全 线程的不安全是由于多线程访问和修改共享资源而引起的不可预测的结果。ios多线程开发中为保证线程的安全常用...

  • iOS 数组线程安全

    概述 为什么会有数组的线程安全问题?对于可变的集合(NSMutableArray、NSMutableDiction...

  • iOS线程安全——锁

    摘自《iOS开发快速进阶与实战》 线程安全是iOS开发中避免不了的话题,随着多线程的使用,对于资源的竞争以及数据的...

  • iOS 各种锁

    概述 iOS多线程开发,会出现数据竞争,因此需要锁来保证线程安全。 线程安全 当一个线程访问资源时,需要保证其它的...

  • iOS开发线程安全

    多线程编程里,会出现共同访问数据造成不安全的问题,网易的一个面试题很经典的诠释了线程安全。 @property (...

  • Java基础:String, StringBuffer, Str

    String是不可变字符数组 StringBuffer是线程安全的字符数组 StringBuilder是线程不安全...

  • iOS-线程安全

    本文转自掘金iOS-线程安全 多线程技术对于计算机开发带来了巨大的性能提升,同样也来带了新的伤痛——线程安全问题。...

  • iOS 线程同步 资源抢夺

    iOS 线程同步 资源抢夺 线程同步: 多线程开发保证公共访问的资源不被同时访问.设计到线程安全,一个好的设计是最...

网友评论

      本文标题:【iOS开发】数组的线程安全

      本文链接:https://www.haomeiwen.com/subject/mljixxtx.html