guillaumech
Expert
Bonjour à tous,
J'ai une petite question et j'aurais besoin de votre avis d'expert
Je dispose d'une application faisant des traitements assez lourd dont voici les états :
1/ Téléchargement des données
2/ Extraction + traitements
Je répète ces étapes x fois. Ce qui prend le plus de temps est l'étape 2 car il y a de nombreuses données différentes à traiter. L'étape 2 peut durer entre 30s et 5 min.
L'exécution est séquentielle, c'est à dire que tant que l'étape 2 n'est pas finalisée, l'étape suivante (1) attend. Alors je me suis demandé si l'utilisation de thread pourrait accélérer les opérations.
Thread 1 <===== étape 1
Thread 2 <===== étape 2
Je fais partir l'étape 1 de téléchargement des données dans le premier thread, tant que les premières données ne sont pas télécharger, l'étape 2 (qui est passée dans le thread 2) ne se lance pas.
Lorsque le thread 1 à fini son premier tour, le thread 2 s'exécute et le thread 1 repart sur les données suivantes.
Comme le thread 2 à une exécution plus longue, il ne sera plus bloqué par le thread 1, donc les données seront toutes téléchargées bien avant la fin du dernier tour du thread 2.
Pensez-vous que cela puisse accélérer les choses ? Car le thread 1 va utiliser des ressources, non disponible pour le 2, donc le 2 sera ralentit ... (peut être pas autant qu'une exécution séquentielle, je sais pas).
Merci pour vos réponses
Guich
J'ai une petite question et j'aurais besoin de votre avis d'expert
Je dispose d'une application faisant des traitements assez lourd dont voici les états :
1/ Téléchargement des données
2/ Extraction + traitements
Je répète ces étapes x fois. Ce qui prend le plus de temps est l'étape 2 car il y a de nombreuses données différentes à traiter. L'étape 2 peut durer entre 30s et 5 min.
L'exécution est séquentielle, c'est à dire que tant que l'étape 2 n'est pas finalisée, l'étape suivante (1) attend. Alors je me suis demandé si l'utilisation de thread pourrait accélérer les opérations.
Thread 1 <===== étape 1
Thread 2 <===== étape 2
Je fais partir l'étape 1 de téléchargement des données dans le premier thread, tant que les premières données ne sont pas télécharger, l'étape 2 (qui est passée dans le thread 2) ne se lance pas.
Lorsque le thread 1 à fini son premier tour, le thread 2 s'exécute et le thread 1 repart sur les données suivantes.
Comme le thread 2 à une exécution plus longue, il ne sera plus bloqué par le thread 1, donc les données seront toutes téléchargées bien avant la fin du dernier tour du thread 2.
Pensez-vous que cela puisse accélérer les choses ? Car le thread 1 va utiliser des ressources, non disponible pour le 2, donc le 2 sera ralentit ... (peut être pas autant qu'une exécution séquentielle, je sais pas).
Merci pour vos réponses
Guich