Comment COM garantit-il que sur une machine multicœur, elle reste en synchronisation si vous avez un serveur COM externe et un client COM, s'appuyant les uns sur les autres, les choses ne se brisent pas si vous l'utilisez sur une architecture multi-core?COM Architecture multithread sur une machine multicœur
Répondre
Dans votre commentaire, vous demandez ce qui se passe si le client COM s'exécute sur un thread et le serveur COM - sur un autre thread. Ces deux threads résident dans des processus différents (puisque le serveur est hors-proc).
Si votre client utilise un serveur COM externe, le sous-système COM utilise RPC (RPC local) pour communiquer avec le serveur. Ceci est fait de manière transparente pour le client - le client appelle une méthode, RPC prépare une chaîne avec tous les paramètres, bloque le thread client, passe l'appel au serveur, le serveur traite l'appel abd revient au client. Il n'y a pas d'accès simultané, donc pas de problèmes avec une synchronisation supplémentaire - toute la synchronisation est faite automatiquement.
Comme votre serveur COM est en panne, les threads du client et du serveur s'exécutent dans des processus distincts. Les mécanismes de synchronisation inter-processus dans Windows fonctionnent à travers les cœurs ou les processeurs, de sorte que le sous-système COM traitera déjà tous les problèmes multi-core/processeur pour vous. Si vous avez des données qui peuvent changer à la fin du serveur sans que le client le sache, c'est aussi un problème pour un seul CPU/core - vous devez adresser cela soit avec interrogation (mauvaise) ou interface de notification client (mieux).
- 1. Application multithread dans un processeur multicœur
- 2. Machine virtuelle multicœur pour test mpi ouvert
- 3. Obtenir COM Exception 80040154 sur une autre machine
- 4. Comment tester votre code sur une machine avec une architecture big-endian?
- 5. Dois-je utiliser Hibernate avec cette architecture multithread ou l'abandonner?
- 6. La cellule IBM est-elle multicœur?
- 7. Problème de gain de performance dans une application multicœur
- 8. Utilisation du composant COM hérité dans l'environnement multithread C#
- 9. wcf et multicœur
- 10. Comment enregistrer des objets COM lorsque je publie sur une autre machine
- 11. Configuration partagée multicœur SOLR
- 12. requête sur un programme multithread
- 13. Question sur l'usine Design Architecture
- 14. OpenMP parallèle sur une machine mais série sur une autre
- 15. Bonne façon de script regasm et gacutil pour une DLL COM Interop sur une machine de développement
- 16. API Crochet sur une fonction d'objet COM?
- 17. Accès refusé erreurs sur une application COM +
- 18. Ordonnancement de Gang en RTOS sur un processeur multicœur
- 19. Sur MacOSX multicœur, le code C++ suivant est-il threadsafe?
- 20. Plusieurs instances d'Internet Explorer sur une machine
- 21. mulltiple compte cookies sur une seule machine
- 22. AutoHotkey ControlSend problème sur une machine
- 23. Tableau de proxies sur une machine linux
- 24. long sur une machine 64 bits
- 25. Aide avec subprocess.call sur une machine Windows
- 26. TeamCity - plusieurs agents sur UNE MACHINE? Possible?
- 27. Installer le logiciel sur une machine distante?
- 28. Régulateur de vitesse sur une machine virtuelle
- 29. SetCurrentDirectory dans une application multithread
- 30. MSAA basé sur COM?
Quels problèmes attendez-vous spécifiquement? – sharptooth
Si le processeur A exécute Thread A du client COM et que la CPU B exécute Thread A du serveur COM, s'ils dépendent l'un de l'autre et que le serveur COM a mis à jour la valeur de ce client, le client utilisera des données incorrectes . –