Le PROCESSEUR de l'architecture de paysage a changé, plusieurs cœurs est une tendance qui va changer la façon dont nous avons à développer des logiciels. J'ai fait des multi-thread développement en C, C++ et Java, j'ai fait des multi-processus de développement à l'aide de divers mécanismes IPC. Les approches traditionnelles de l'utilisation de threads ne semblent pas, il est facile, pour le développeur, d'utiliser le matériel qui supporte un haut degré de simultanéité.
Quelles sont les langues, les bibliothèques et les techniques de développement, êtes-vous conscient de qui aident à atténuer les défis traditionnels de la création d'applications simultanées? Je suis évidemment penser à des questions comme les blocages et des conditions de course. Les techniques de conception, de bibliothèques, d'outils, etc. sont également intéressants qui aident réellement en profiter et de s'assurer que les ressources disponibles sont utilisées - le simple fait d'écrire un coffre-fort, robuste filetée application ne garantit pas que c'est à l'aide de tous les cœurs disponibles.
Ce que j'ai vu jusqu'à présent est:
- Erlang: processus de base, la transmission de message de la CIB, l'acteur du modèle de la simultanéité
- Dramatis: les acteurs du modèle de la bibliothèque pour Ruby et Python
- Scala: langage de programmation fonctionnel pour la JVM avec certaines ajouté la simultanéité de soutien
- Clojure: langage de programmation fonctionnel pour la JVM avec un des acteurs de la bibliothèque
- Termites: un port d'Erlang l'approche processus et la transmission de message de Régime
Que faites-vous connaître, ce qui a fonctionné pour vous et que pensez-vous est intéressant à regarder?