Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Multi-Threading Et Cocoa

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Plugins Xcode
Plugins Xcode
Chargement dans…3
×

Consultez-les par la suite

1 sur 20 Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Publicité

Similaire à Multi-Threading Et Cocoa (20)

Plus par CocoaHeads France (20)

Publicité

Plus récents (20)

Multi-Threading Et Cocoa

  1. 1. Multi-Threading Et Cocoa 1ère Partie Avant l’architecture
  2. 2. Plan Motivation, le pourquoi Plan d’ensemble, le comment Mise en oeuvre, l’enfer est dans le détail Et Cocoa dans tout ça... Avec une démo SVP
  3. 3. Motivation, le pourquoi Système hôte et application Architecture d’une application évènementielle Les limites, les problèmes Propositions
  4. 4. Système hôte et application Un système qui est l'ordonnanceur Des applications avec leur propres espace mémoire Un 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èmes Une seule séquence d’instruction Une tâche à la fois La roue colorée...
  8. 8. Propositions Faire accomplir les tâches lourdes par des applications autres et communiquer avec Découper les tâches en petites parties peu coûteuses Passer à autre chose... plus adapté au niveau de l’architecture applicative
  9. 9. Plan d’ensemble, le comment Une application, plusieurs Threads Une 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. Illustration Mé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 elle exécuté et interrompue ? a_ = b+c
  15. 15. Protéger les données Section de code que l’on appelle critique Instruction atomique Garantir qu’une opération de lecture ou d’écriture ne puisse être interrompue pour passer à un autre thread Locks divers et variés Conditions
  16. 16. Communication entre threads Transmettre des résultats Transmettre des ordres
  17. 17. Et Cocoa dans tout ça... RunLoop & InputSource NSLock & @synchronized NSRecusiveLock NSConditionLock
  18. 18. RunLoop & InputSource Une boucle infinie pour attendre que quelque chose se passe sans consommer de ressources CPU Des points d’entrées pour indiquer qu’il y a quelque chose à faire... E/S Messages ObjC Spécifiques Timers
  19. 19. RunLoop & InputSource
  20. 20. Avec une démo SVP La démo...

×