Quelle est la manière la plus simple de s'assurer qu'une région de code ne peut être exécutée que par un pthread?Les threads POSIX - ne faire qu'une seule fois
On suppose il y a des fils n
(n
pas égal à 1)
// do this once
int x;
x = some_function();
printf("%d\n", x);
-je utiliser une variable partagée et une barrière? Laisser toutes les variables affecter leur ID de thread (?) À une variable partagée, puis le dernier thread à écrire dans la variable pourrait être le thread principal? Puis plus tard dans le programme, vous pouvez vérifier l'ID de thread contre la variable partagée?
Merci beaucoup.
Merci beaucoup.
Comment puis-je obtenir la valeur de retour d'une fonction que je veux appeler une fois? Je vais éditer la question pour être clair ... Merci :). – ale
Le [man] (http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_once.html) dit: _Le premier appel à pthread_once() ... appellera le init_routine sans arguments. Les appels ultérieurs de pthread_once() avec la même commande once_control ne doivent pas appeler l'init_routine._ ** Est-il nécessaire de _envelopper le pthread_once() avec un mutex _? ** – user454322