Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何制作我的代码;“针对并发调用保存”;当使用;NSSortConcurrent“;在SorterDarray中使用选项:使用Comparator?_Objective C_Sorting_Nsarray - Fatal编程技术网

Objective c 如何制作我的代码;“针对并发调用保存”;当使用;NSSortConcurrent“;在SorterDarray中使用选项:使用Comparator?

Objective c 如何制作我的代码;“针对并发调用保存”;当使用;NSSortConcurrent“;在SorterDarray中使用选项:使用Comparator?,objective-c,sorting,nsarray,Objective C,Sorting,Nsarray,我正在尝试使用SorterDarrayWithOptions:usingComparator:-方法od NSArray对NSDate数组进行排序。到目前为止,一切都很好,我的代码按预期工作。 然而,看到我可以指定要使用的方法的选项,我进入文档并试图弄清楚它们的含义。 当然还有NSSortStable:具有相同值的对象应该按照排序之前的顺序返回。我想这很容易。 但对于NSSortConcurrent的含义,我有点困惑。这些文件是这样说的: Specifies that the Block sor

我正在尝试使用SorterDarrayWithOptions:usingComparator:-方法od NSArray对NSDate数组进行排序。到目前为止,一切都很好,我的代码按预期工作。 然而,看到我可以指定要使用的方法的选项,我进入文档并试图弄清楚它们的含义。 当然还有NSSortStable:具有相同值的对象应该按照排序之前的顺序返回。我想这很容易。 但对于NSSortConcurrent的含义,我有点困惑。这些文件是这样说的:

Specifies that the Block sort operation should be concurrent.

This option is a hint and may be ignored by the implementation under some circumstances;
the code of the Block must be safe against concurrent invocation.

Available in Mac OS X v10.6 and later.

所以我知道我可以允许使用多个线程进行排序操作?太好了。在这种情况下,“针对并发调用进行保存”只是“线程安全”的花哨说法吗?如果不是,那是什么意思?很抱歉问了这个相当愚蠢的问题,但我不是以英语为母语的人。谢谢。

没关系,我知道了。NSSortConcurrent确实允许排序操作使用多个线程,因此唯一的重写是使排序块是线程安全的。只要你不接触块外的任何数据(所以不要使用块变量),你就应该没事。

没关系,我知道了。NSSortConcurrent确实允许排序操作使用多个线程,因此唯一的重写是使排序块是线程安全的。只要您不接触块外的任何数据(因此不要使用块变量),您就应该没事。

即使此线程非常旧:这并不完全正确。一个块不是线程安全的,仅仅因为它不能访问它之外的任何东西。在这种情况下,对象本身也需要进行线程保存,并且您需要确保在另一个线程上不会发生任何会使您比较不同结果的事情。即使这个线程非常旧:这并不完全正确。一个块不是线程安全的,仅仅因为它不能访问它之外的任何东西。在这种情况下,对象本身也需要进行线程保存,并且您需要确保在另一个线程上不会发生任何会使您比较不同结果的事情。