W jaki sposób program scala może tworzyć wielowątkowe programy łatwiej niż w języku Java? Co może scala zrobić (że java nie może), aby ułatwić korzystanie z wielu procesorów?Jakie zalety ma Scala nad Javą do programowania współbieżnego?
Odpowiedz
Istnieje nic. Scala robi, że Java nie. To byłoby głupie. Scala działa na tej samej maszynie JVM, którą ma Java.
Co Scala ma zrobić ułatwia pisanie, łatwiejsze rozumowanie i łatwiejsze do debugowania programu wielowątkowego.
Dobrym kawałkiem Scala dla współbieżności jest skupienie się na niezmiennych obiektach, przekazywaniu wiadomości i ich Aktorach.
Daje to bezpieczne dla wątków dane tylko do odczytu, łatwe przekazywanie tych danych do innych wątków i łatwe korzystanie z puli wątków.
Dodałbym do niego zamknięcia. Naprawdę ułatwia to wiele rzeczy. –
Dodałbym również, że rozdzielone granice naprawdę zmieniają pole gry do pisania współbieżnych programów. Mam nadzieję, że niesamowite wsparcie biblioteki pojawi się w ciągu kilku miesięcy. – jsuereth
Zasady współbieżności są
1 uniknąć, jeśli możesz
2 akcje nic jeśli można
3 akcje niezmienne obiekty jeżeli można
4 być bardzo ostrożny (a szczęście)
Dla reguły 2 Scala pomaga poprzez dostarczenie ładnie zintegrowanej wiadomości przekazującej bibliotekę po wyjęciu z pudełka w postaci aktorów.
Dla reguły 3 Scala pomaga w domyślnym ustawieniu wszystkiego jako niezmiennego.
Elastyczna składnia reguły 4 Scala pozwala na tworzenie wewnętrznych linii DSL, dzięki czemu łatwiej jest wyrazić to, czego potrzebujesz. czyli mniej miejsca na niespodzianki (jeśli zrobione dobrze)
Myślę, że # 1 staje się coraz trudniejsze do zrobienia. Powiedziałbym, że za pomocą frameworka, np. map-reduce lub biblioteka typu fork-join, może pomóc w pisaniu programów współbieżnych bez poczucia współbieżności. – jsuereth
Zgadzam się. Zdecydowanie opłaca się dokładnie zbadać twoje potrzeby i wybrać wzory współbieżności, które pasują do tych potrzeb. A następnie użyj debugowanej biblioteki/frameworka, które je implementuje. –
# 1 Musi nadejść z listy; raczej powinniśmy aktywnie poszukiwać sposobów na wykorzystanie rdzeni wielu procesorów dostępnych na nowoczesnych komputerach. –
Jeśli weźmie Akka jako podstawa do jednoczesnego (i rozproszonego) computing, można argumentować, jedyną różnicą jest zwykle rzeczy, która odróżnia Scala z Java, ponieważ Akka ma zarówno Java i wiązań Scala dla wszystkich swoich obiektów.
- 1. Jakie są zalety języka programowania Kotlin?
- 2. Jakie zalety ma Ceylon w porównaniu z Javą lub Scalą
- 3. Dlaczego Clojure zamiast Javy do programowania współbieżnego
- 4. Jakie są zalety QAbstractItemModel nad QStandardItemModel?
- 5. jakie są zalety MVC3 nad MVC2
- 6. Jakie są zalety/wady szwy nad sprężyną?
- 7. zalety programowania stanowego?
- 8. Zalety paczki nad JSON
- 9. Zalety [HandleError] nad Application_Error
- 10. Jakie są zalety PyQt nad PyGTK i na odwrót?
- 11. Jakie są zalety Twitter Future w stosunku do Scala Future?
- 12. Jakie są zalety LLDB nad GDB w rozwoju iOS?
- 13. Jakie są zalety JRebel?
- 14. Zalety Executorów nad nowym wątkiem
- 15. Jakie są zalety coroutines?
- 16. Jakie są zalety wzorca Konstruktora danych testowych nad Inicjatorami obiektów?
- 17. Funkcjonalny odpowiednik współbieżnego multimapu
- 18. Jakie są zalety NSBinaryStoreType?
- 19. Jakie są zalety VistaDB
- 20. . Język Java dla programowania jednoczesnego
- 21. Jakie zalety ma XML-RPC zamiast zwykłego XML?
- 22. Jakie są rzeczywiste zalety niezmiennych kolekcji?
- 23. Jakie są zalety różnych endiannesses?
- 24. Jakie są zalety używania zastrzeżenia?
- 25. Jakie są zalety korzystania z Qt?
- 26. Jakie zalety ma OLAP w pamięci w stosunku do tradycyjnych systemów o znacznej pamięci?
- 27. Zalety JavaConfig nad konfiguracjami XML na wiosnę?
- 28. Jakie są rzeczywiste zalety wzoru gościa? Jakie są alternatywy?
- 29. Szczególne zalety NServiceBus nad zwykłym RabbitMQ
- 30. Przejdź do współbieżnego dostępu do metod wskaźników
Java może zrobić wszystko, co Scala może zrobić, i na odwrót. Obaj działają w JVM i oboje są Turing-complete, więc z definicji każdy może robić to samo, co drugi. Różnica jest tym, co łatwiejsze lub bardziej naturalne w jednym języku niż inne. – cHao
@CHao @Zan edytowane pytanie, aby dokładniej rozwiązać problem. :) –