Une seule application thread (C ++) verrouille, écrit et déverrouille en permanence la mémoire partagée – quatre fois par seconde (la boucle est programmée pour s’exécuter une fois par seconde et il y a 4 écritures dans la boucle et aucune lecture).
EnterCriticalSection (cs);
WriteToSharedMem ();
LeaveCriticalSection (cs);
- Mesurer le temps processeur sous Windows à l'aide de GetProcessTimes
- Quelle est la précision du sumil () ou du sumil ()
- Existe-t-il un moyen de recevoir du texte le plus rapidement possible sans attendre une nouvelle ligne?
- Le programme ne s'est pas bloqué en cas de dépassement de tampon
- Pourquoi BOOL dans Windows est de type int?
Une autre application (C) accédera à cette mémoire partagée toutes les quelques minutes .
Y at-il des problèmes avec l’écriture dans la mémoire partagée à ce rythme?
Windows XP
C ++
À ce rythme là, certainement pas! C’est extrêmement lent, mais je ne suis pas sûr que la section Critical soit ce que vous voulez utiliser. Si vous vous en souvenez, c’est la seule chose qui garantisse la sécurité des threads et non la sécurité des applications, vous devez rechercher autre chose pour verrouiller la mémoire partagée. Vous devez utiliser un mécanisme de communication inter-processus (IPC) pour garantir des opérations atomiques avec de la mémoire partagée.
Le taux que vous donnez (quatre fois par seconde) ne posera pas de problème, mais vous ne pouvez pas utiliser de sections critiques dans tous les processus . Vous avez besoin d’un object de synchronisation au niveau du kernel, tel qu’un mutex .
Pas du tout. Vous pouvez obtenir / libérer le verrou des milliers (ou des dizaines ou des centaines de milliers) de fois par seconde. Vous pouvez facilement faire un repère rapide à voir.