假设每个线程通过 不同的数组, 则不需要同步,因为其余变量是局部的。
相反,如果您触发所有调用
sortA并传递对同一数组的引用的几个线程, 那么 如果没有
synchronized, 您将遇到麻烦
,因为它们会互相干扰。
注意,从示例中可以看出,该
getList方法
List从数组中返回一个新值,这样即使线程传递相同的数组,您也会获得不同的
List对象。这是误导。例如,using
Arrays.asList创建了一个
List由给定数组支持的数组,但是javadoc明确声明了这一点,
Changes to thereturned list "write through" to the array.因此请注意这一点。



