Видимость памяти в Fork-join

Брайан Гетц написал хорошую статью о fork-join на http://www.ibm.com/developerworks /java/library/j-jtp03048.html . В нем он перечисляет алгоритм сортировки слиянием с использованием механизма fork-join, в котором он выполняет сортировку на двух сторонах массива параллельно, а затем объединяет результат.

Алгоритм одновременно выполняет сортировку по двум различным разделам одного массива. Почему для поддержания видимости не требуется AtomicIntegerArray или какой-либо другой механизм? Какая гарантия, что один поток увидит записи, сделанные другим, или это тонкая ошибка? Как продолжение, дает ли Scala ForkJoinScheduler эту гарантию?

Спасибо!

6
задан Joshua Hartman 26 January 2011 в 00:52
поделиться