bonjour;
pouvez vous expliquer ce que veut dire fonction synchrone et asynchrone?
merci
bonjour;
pouvez vous expliquer ce que veut dire fonction synchrone et asynchrone?
merci
Pour moi, une fonction synchrone est l'équivalent d'une fonction bloquante, c'est à dire que le programme ne continue pas tant que la fonction n'a pas terminé son travail. Lorsque qu'on appelle une fonction asynchrone, le programme continue sont alors que la fonction s'exécute en parallèle.
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
concretement quels sont les moyens en C pour rendre une fonction asynchrone synchrone?
En C standard, aucun moyen.
En C POSIX, il faut utiliser l'API pthread pour lancer la fonction dans un autre thread...
En C Win32, pareil, y'a que l'API qui change (et encore, pas si tu télécharges l'implémentation Windows de pthread...)
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Une fonction peut par exemple lancer un nouveau thread (en utilisant par exemple la bibliothèque Pthread).
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Tu peux changer le comportement de certaines fonctions travaillants sur des devices, FD, etc ... à l'air de la fonction ioctl().
Attention, il y a une difference entre synchrone / asynchrone et bloquant/non-bloquant. On peut avoir une fonction synchrone non-bloquante, par exemple. Voir cette page, section definitions et I/O model pour une bonne distinction.
Au temps pour moi et merci pour le lien! La distinction bloquante/non-bloquante et synchrone/asynchrone est encore floue pour moi. Je vais essayer d'investiguer le sujet en partant de ton lien.
EDIT: Ca semble plus clair après lecture. J'ai encore un peu de mal à saisir à quoi correspond un appel à une fonction bloquante/asynchrone.
Salutations
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
C'esr pourtant simplec'est dans le nom...
Synchrone/Asynchrone : quelque chose qui se passe (ne se passe pas) au moment où on le demande.
Bloquant/Non bloquant : quelque chose qui ne se termine pas (se termine) tant que l'action n'est pas complètement terminée.
Exemple : une fonction en général est bloquante ET synchrone.
un fprintf(stderr, ...) est bloquant et synchrone (enfin, à la gestion du device près)
un fprintf(stdout...) est bloquant et NON synchrone (tampon dans la bibliothèque)
(ou par exemple fwrite est bloquant et asynchrone (les instructions de la fonction doivent être toutes exécutées avant que la fonction ne retourne, mais l'écriture physique sur le device est déléguée au hardware, et donc asynchrone), alors que fread est bloquant et synchrone, puisqu'on a besoin du résultat au retour de la fonction).
Bon, là pour moi c'est le matin, alors pas encore très bien réveillé, je ne trouve plus comme ça de non-bloquant.. Bah enfin si. Par exemple un appel à system(). Si dans la chaîne on met ce qu'on veut faire en background (du style sous unixoide "programme &"), system retournera tout de suite (synchrone) mais l'action ne sera pas forcément faite (non-bloquante) (puisque qu'on soumet le programme dans la queue des processus à loader).
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
t'as raisoncomme je dis suis pas complètement réveillé...
![]()
bonjour,
je suis d accord avec toi Thierry.
Si le process est lancé par la fonction system pour moi il est asynchrone, son exécution ne dépends plus du process appelant => asynchrone
[grillé comme on dit dans le milieu]
et pour compléter la définition je dirais que :
asynchrone + non-bloquant = Temps Réel
Pour moi, la fonction system() reste bloquante, car elle ne retourne pas tant que le nouveau processus n'est pas lancé (donc, tant que le shell n'a pas fini d'exécuter la commande "monProgramme &").
Par contre, la commande passée à system() est asynchrone.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager