Ios 用于并发操作的NSThread

Ios 用于并发操作的NSThread,ios,objective-c,nsthread,Ios,Objective C,Nsthread,使用4 NSThread向数组添加1000个元素(比如整数元素)。如果添加对象需要1个时间单位,那么添加1000个对象将需要1000个时间单位。 通过使用4个线程,我想把它减少到250个单位。 如何使用NSThreads实现这一点。 谢谢简短回答:使用NSThread(或GCD)无法实现这一点 详细回答:Objective-CNSArray类型不是线程安全的,不支持并发更新。虽然您可以将NSArray封装在线程安全的包装器中,这样它就可以由多个线程安全地更新,但这样的包装器可以通过序列化更新来实

使用4 NSThread向数组添加1000个元素(比如整数元素)。如果添加对象需要1个时间单位,那么添加1000个对象将需要1000个时间单位。 通过使用4个线程,我想把它减少到250个单位。 如何使用NSThreads实现这一点。
谢谢

简短回答:使用
NSThread
(或GCD)无法实现这一点

详细回答:Objective-C
NSArray
类型不是线程安全的,不支持并发更新。虽然您可以将
NSArray
封装在线程安全的包装器中,这样它就可以由多个线程安全地更新,但这样的包装器可以通过序列化更新来实现这一点,因此您不会节省任何时间(实际上会在线程安全的包装器中花费一些时间)

也许您的意思不同:如果不是向希望重叠的数组中添加项,而是在添加之前生成这些项,那么您可以使用
NSThread
或GCD来完成,前提是您还将
NSArray
包装在线程安全包装器中

当前推荐的并发操作方法是使用GCD,即调度。如果您仔细阅读,您将发现如何使用串行队列和屏障操作使阵列线程安全,以及如何使用并发队列运行4个任务


HTH

忘记线程。已经是2019年了。