Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Multi-Threading Et Cocoa

2,155 views

Published on

Gérard Iglesias

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Multi-Threading Et Cocoa

  1. 1. Multi-Threading Et Cocoa 1ère Partie Avant l’architecture
  2. 2. PlanMotivation, le pourquoiPlan d’ensemble, le commentMise en oeuvre, l’enfer est dans le détailEt Cocoa dans tout ça...Avec une démo SVP
  3. 3. Motivation, le pourquoiSystème hôte et applicationArchitecture d’une applicationévènementielleLes limites, les problèmesPropositions
  4. 4. Système hôte et applicationUn système qui est lordonnanceurDes applications avec leur propresespace mémoireUn système de communication inter-application
  5. 5. Architecture d’une application évènementielle Une boucle infinie Un ensemble d’entrées sorties Des Apis Graphiques ou autres
  6. 6. Architecture d’une application évènementielle Une boucle infinie Un ensemble d’entrées sorties Des mécanisme périodiques
  7. 7. Les limites, les problèmesUne seule séquence d’instructionUne tâche à la foisLa roue colorée...
  8. 8. PropositionsFaire accomplir les tâches lourdes pardes applications autres et communiqueravecDécouper les tâches en petites partiespeu coûteusesPasser à autre chose... plus adapté auniveau de l’architecture applicative
  9. 9. Plan d’ensemble, le commentUne application, plusieurs ThreadsUne illustration SVP
  10. 10. Une application, plusieurs threads Une thread principale... le main() Plusieurs séquences de code simultanées Sauvegarde de contexte... instruction courante registres et d’autres... trucs (google est votre ami)
  11. 11. IllustrationMémoire Code Pile Registres Code Pile Registres Code Pile Registres
  12. 12. Mise en oeuvre, l’enfer est dans le détail Un seul espace mémoire à partager Granularité Protéger les données Communication entre les threads
  13. 13. Un seul espace mémoire à partager Deux threads veulent accéder à la même valeur en mémoire Variables locales TLS : Thread Local Storage Resources globales (fichiers, sous process, pipes, e/s ... )
  14. 14. GranularitéA quel moment une instruction est elleexécuté et interrompue ?a_ = b+c
  15. 15. Protéger les donnéesSection de code que l’on appellecritiqueInstruction atomique Garantir qu’une opération de lecture ou d’écriture ne puisse être interrompue pour passer à un autre threadLocks divers et variésConditions
  16. 16. Communication entre threads Transmettre des résultats Transmettre des ordres
  17. 17. Et Cocoa dans tout ça...RunLoop & InputSourceNSLock & @synchronizedNSRecusiveLockNSConditionLock
  18. 18. RunLoop & InputSourceUne boucle infinie pour attendre que quelquechose se passe sans consommer de ressourcesCPUDes points d’entrées pour indiquer qu’il y aquelque chose à faire... E/S Messages ObjC Spécifiques Timers
  19. 19. RunLoop & InputSource
  20. 20. Avec une démo SVPLa démo...

×