Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2519 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [Débutant] Lancer des fonctions simultanément

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Débutant] Lancer des fonctions simultanément

n°1206953
le_highlan​der
Posté le 25-09-2005 à 16:19:14  profilanswer
 

Bonjour,
 
J'ai une fonction qui peut mettre pas mal de temps à tourner (jusqu'à 1 minute). Et j'ai besoin de l'exécuter plusieurs fois avec des paramètres différents.
 
J'aurais donc aimé en lançant plusieurs de manière désynchronisée.
 
J'ai essayé avec Async.pm mais dans 15-20% des cas, ça semble planter (résultat vide). (J'ai l'impression que lorsqu'une fonction finit, elle peut avoir un effet de bord sur une de ses copines)
 
Y aurait-il un autre moyen en perl de faire du simultanée ?
 
Merci d'avance.

mood
Publicité
Posté le 25-09-2005 à 16:19:14  profilanswer
 

n°1206964
masklinn
í dag viðrar vel til loftárása
Posté le 25-09-2005 à 16:32:46  profilanswer
 

lancer plusieurs processus (~fork) ou threads en parallèle?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1206965
KangOl
Profil : pointeur
Posté le 25-09-2005 à 16:34:36  profilanswer
 

oui mais faut que tes fonctions soient réentrantes...


---------------
Nos estans firs di nosse pitite patreye...
n°1206967
le_highlan​der
Posté le 25-09-2005 à 16:35:38  profilanswer
 

oui c'est ça, lancer des threads en parallèle.
Ma fonction doit être réentrante : ça veut dire quoi ?

n°1207131
pospos
Posté le 25-09-2005 à 18:48:05  profilanswer
 

Normalement Async.pm marche pas mal pour ca, sauf evidemment sous windows.
tu a aussi la fonction async du module de thread.
 
tu es sur quel plateforme et que veux tu executer exactement?
 
Si c'est des trucs reseaux ou autre il y a peu etre moyen de faire autrement (mode non bloquant, etc..)


Message édité par pospos le 25-09-2005 à 18:49:02
n°1207233
le_highlan​der
Posté le 25-09-2005 à 22:31:01  profilanswer
 

je travaille sous Linux.
j'aimerais tester la disponibilité d'URLs.
J'utilise PWL (c'est pas une obligation, si y'a mieux, je ne suis pas contre !).
Vu que ça freeze pendant quelques secondes si le site est indisponible, j'aurais aimé en lancer plusieurs en même temps.
voili voila.

n°1207287
le_highlan​der
Posté le 26-09-2005 à 00:00:07  profilanswer
 

je viens d'essayer de récupérer à droite à gauche des infos sur fork. Puré, c'est pas évident ce truc !
 
Par contre, j'ai continué à essayer de faire marcher mon Async.pm et peut-être la remarque "la fonction doit être réentrante" pourrait permettre de faire avancer les choses.
En effet, je me suis rendu compte (du moins c'est l'impression que j'ai) que si je lance Async sur la même fonction avec des paramètres différents, c'est toujours le même résultat qui est renvoyé.
DOnc peut etre que mon problème ne se trouve pas au niveau de Async mais au niveau de la fonction. "qui doit etre ré-entrante". Et donc j'aurais aimé savoir ce que ça veut dire :))
 
 

n°1207302
masklinn
í dag viðrar vel til loftárása
Posté le 26-09-2005 à 00:23:02  profilanswer
 

le_highlander a écrit :

je viens d'essayer de récupérer à droite à gauche des infos sur fork. Puré, c'est pas évident ce truc !


La concurrence n'est jamais aisée, et fork tu joues avec les processus, les threads ça semble plus simple à première vue, mais en réalité c'est encore plus difficile à gérer.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1207444
pospos
Posté le 26-09-2005 à 11:01:47  profilanswer
 

pour tester des url nul besoin de fork.
Il faut plutot que tu tente des connections non bloquantes avec un select.
 
tu peux t'inspirer de ca:
http://forum.hardware.fr/hardwaref [...] -1.htm#bas
 
a par la partie qui extrait les URL des pages tout le reste est bon pour toi: tu lui fourni simpelment la liste des URL que tu veut tester à la place, et ca devrait rouler (en appelant check())
Si tu est sous linux tu peu meme augmenter el nombre de connections simultannées à genre 200 ou plus, sans probleme


Message édité par pospos le 26-09-2005 à 11:03:20

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Débutant] Lancer des fonctions simultanément

 

Sujets relatifs
debutant...lien sur site qui ouvre wmp pour visionner une video[Débutant] Question sur printf et les float
Comment charger deux fonctions dans la balise body ?[débutant] remplir jtable avec requete
[RESOLU]récupérer le nom d'un executable pour le lancer[débutant][Swing] StackOverflow à la création d'un composant
Problème pour lancer une actionDébutant , aimerait apprendre le VB
[Débutant] Webdesigner a besoin d'aide pour PHPdébutant: problème applet java
Plus de sujets relatifs à : [Débutant] Lancer des fonctions simultanément


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR