J'avoue : j'arrive en retard à cette session à cause de la récupération du disque dur et du dvd Windows 7. J J'ai également choisi de modifier mon choix pour cet horaire.
Il s'agit ici du CCR : Concurrency Coordination Runtime, sorti des bureaux de Microsoft Research. Et la session commence par un ensemble de retour sur expériences.
Qu'est ce que le CCR :
- Message Asynchrones sans avoir à gérer les threads et les locks
- Un scheduler de tâches basé sur la disponibilité des messages
- Un coordinateur de primitives (join, etc.)
- Et un ensemble de tâches itératives
Exmple d'utilisation : On donne un processus à une queue et on lui « dit » de ne pas l'exécuter tant qu'une condition n'est pas remplie. Dès que celle-ci est remplie, ce process sera exécuté.
Les deadlocks ne sont pas possible, car si une condition n'est pas remplie, l'appel n'est pas bloquant, il est mis de côté pour être retenté plus tard. (Même si pour moi, cela reste à prouver qu'on ne puisse vraiment pas avoir de deadlocks !)
Un exemple nous est présenté avec un énumérateur qui est « bloquant » sur une attente de réception d'un message, mais qui ne bloque pas de threads, il est bloqué « logiquement ».
Nous avons également droit à une démonstration d'un chargement en parallèle d'images dans une application WPF.
Il est possible d'utiliser le CCR pour gérer de la concurrence de requêtes WCF. Il faut pour cela en autre définir un ServiceHandler paramétré en tant que « Concurrent ». Dans la démonstration qui nous est faite, on créé 1000 services, qui répondent très rapidement aux demandes via ce mécanisme de parallélisme (il va même jusqu'à comparer ce qu'il fait à un petit IIS J).
Au final, une session très intéressante et surtout très dynamique. Je vous avoue que je vais devoir y jeter un coup d'œil à tête reposé J
Vous pourrez avoir des informations là dessus sur http://www.microsoft.com/ccrdss à partir de demain !
.Dispose();