Какие преимущества дает Scala по сравнению с Java для параллельного программирования?

Как сделать Scala писать многопоточные программы проще, чем в Java? Что может сделать Scala (чего не может Java), чтобы облегчить использование нескольких процессоров?

14
задан Gordon Gustafson 20 August 2010 в 23:14
поделиться

3 ответа

Нет ничего Scala, что не делает Java. Это было бы глупо. Scala работает на той же JVM, что и Java.

Что делает Scala , так это упрощает написание, упрощает рассуждение и упрощает отладку многопоточной программы.

Хорошие стороны Scala для параллелизма - это его фокусировка на неизменяемых объектах, передаче сообщений и его субъектах.

Это дает вам потокобезопасные данные, доступные только для чтения, простые способы передачи этих данных в другие потоки и простое использование пула потоков.

6
ответ дан 1 December 2019 в 08:42
поделиться

Правила параллелизма

1 избегайте этого, если можете

2 ничего не делитесь, если можете

3 совместно использовать неизменяемые объекты, если можете

4 будьте очень осторожны (и повезло)

Для правила 2 Scala помогает, предоставляя из коробки прекрасно интегрированную библиотеку передачи сообщений в виде акторов.

Для правила 3 ​​Scala помогает сделать все неизменным по умолчанию.

Для правила 4 гибкий синтаксис Scala позволяет создавать внутренние DSL, что упрощает и упрощает лаконичное выражение того, что вам нужно. т.е. меньше места для сюрпризов (если все сделано хорошо)

14
ответ дан 1 December 2019 в 08:42
поделиться

Если взять Akka в качестве основы для параллельных (и распределенных) вычислений, можно утверждать, что единственная разница - это обычные вещи, которые отличает Scala от Java, поскольку Akka имеет привязки как Java, так и Scala для всех его возможностей.

12
ответ дан 1 December 2019 в 08:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: