Limite de fréquence d’écriture dans la mémoire partagée?

Une seule application thread (C ++) verrouille, écrit et déverrouille en permanence la mémoire partagéequatre 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);

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.