Bonsoir,
J'aimerais trouver un moyen pratique, portable de faire du multitache en perl ... J'ai testé les threads et fork() qui semble être porté sous Fenêtres(R) mais ...
- fork() me permet d'envoyer des signaux aux processus
- les threads me permettent de partages des données facilement (files, variables partagées, vérous, sémaphores)
- les threads fonctionnent partout
- Mon application utilisant les threads à la place de fork() était plus lente (peut être car j'avais ajouté des fonctionnalités)
J'aimerais donc trouver un moyen de:
cas A:
- pouvoir envoyer des signaux aux threads
ou,
cas B:
- pouvoir partager des variables entre différents processus
- pouvoir utiliser des sémaphores, vérous et autres files d'attentes.
- savoir si fork() est vraiment compatible (Windows, Unix, MacOS 9, ...)
J'aurais une petite préférence pour fork() si jarrive a bien l'utiliser même si il y a une limite à 64 processus sous Windows car mon application était plus rapide (mais buggait car des variables que je croyait partagées ne l'étaient pas).
La différence est assez saisissante. D'un coté le message de bienvenue s'affiche immédiatement. De l'autre, je dois attendre près d'une seconde (c'est peut être car j'ai mis sleep(60) dans un thread pour générer un message toutes les minutes.)
Merci de m'éclairer
Mildred
# mon avis à moi rien qu'à moi
Posté par mathieu mathieu (site web personnel) . Évalué à 1.
Attention le sleep dans pthread se fait normallement en milliseconde .... rien à voir avec la commande console qui elle est en secondes!!!!
pour la rapidité ... tout dépend de l'ordonnencement de l'OS ....
utilise la libpthread ... ca marche sous linux, windows sans modif à la compile!
[^] # Re: mon avis à moi rien qu'à moi
Posté par Mildred (site web personnel) . Évalué à 1.
Mais n'y a il pas moyen d'envoyer un signal à un thread pour éviter qu'il reste bloqué sur une instruction ...
Par exemple, dans mon programme, lorsque je le quitte, il y a un thread qui attend une connexion d'un client. Et pas moyen de demander au thread de quitter quand même, il reste bloqué jusqua ce que je connecte un client ou alors que je fasse Ctrl-C ...
Sinon, pour sleep, c'est bien en secondes car la boucle suivante me permet dafficher un message toutes les minutes:
while($life){
sleep(60);
[...]
}
Mildred
[^] # Re: mon avis à moi rien qu'à moi
Posté par Krunch (site web personnel) . Évalué à 2.
http://www.opengroup.org/onlinepubs/007908799/xsh/pthread.h.html(...)
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.