Wielordzeniowe i współbieżne - języki, biblioteki i techniki programowania [zamknięte]

Krajobraz architektury procesorów zmienił się, wiele rdzeni to trend, który zmieni sposób tworzenia oprogramowania. Zrobiłem wielowątkowy rozwój w C, C ++ i Javie, zrobiłem wieloprocesowy rozwój przy użyciu różnych mechanizmów IPC. Tradycyjne podejście do używania wątków nie wydaje się ułatwiać programistom wykorzystania sprzętu, który obsługuje wysoki stopień współbieżności.

Jakie znasz języki, biblioteki i techniki programistyczne, które pomagają złagodzić tradycyjne wyzwania związane z tworzeniem aplikacji współbieżnych? Oczywiście myślę o problemach takich jak zakleszczenia i warunki wyścigu. Interesujące są również techniki projektowania, biblioteki, narzędzia itp., Które faktycznie wykorzystują i zapewniają wykorzystanie dostępnych zasobów - samo napisanie bezpiecznej, solidnej aplikacji z wątkami nie gwarantuje, że korzysta ze wszystkich dostępnych rdzeni.

Do tej pory widziałem:

Erlang: proces oparty na komunikacie przechodzącym przez IPC, model współbieżności aktoraDramatis: biblioteka modeli aktorów dla Ruby i PythonScala: funkcjonalny język programowania dla JVM z dodaną obsługą współbieżnościClojure: funkcjonalny język programowania dla JVM z biblioteką aktorówBielec: port podejścia procesowego Erlanga i przekazywanie wiadomości do Scheme

Co jeszcze wiesz o tym, co zadziałało dla ciebie i co według ciebie jest interesujące?

questionAnswers(15)

yourAnswerToTheQuestion