Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question à propos des Mutex & co

5 réponses
Avatar
Bull
Bonsoir,

J'ai une application qui doit consulter par exemple le contenu de 100 pages
web. Pour accéder le processus, j'utilise une thread qui lance en parallèle
la consultation des 100 pages.

Problème : du coup, très souvent le timeout est dépassé et les pages non
consultées.

Je voudrais donc limiter par exemple à 5 consultations maxi en même temps.
Ainsi lorsque je demande à ce que les 100 pages soient consultées, elles se
feront en parallèle, mais 5 en même temps maximum (les autres attendront
qu'une place se libère).

Le problème est que je ne sais pas comment faire cela techniquement :p
J'ai tout d'abord pensé à l'utilisation de Mutex mais à moins que je ne me
trompe, il ne permet pas de définir cette limite de 5 : un Mutex permet
uniquement de controler un accès unique (donc la limite sera tjs de 1).

Comment puis-je faire ?

Merci d'avance,
Cordialement,
Bull

5 réponses

Avatar
VANNESTE Xavier
sauf si tu créer 5 instance d'objet controlé par mutex
"Bull" a écrit dans le message de news:

Bonsoir,

J'ai une application qui doit consulter par exemple le contenu de 100
pages web. Pour accéder le processus, j'utilise une thread qui lance en
parallèle la consultation des 100 pages.

Problème : du coup, très souvent le timeout est dépassé et les pages non
consultées.

Je voudrais donc limiter par exemple à 5 consultations maxi en même temps.
Ainsi lorsque je demande à ce que les 100 pages soient consultées, elles
se feront en parallèle, mais 5 en même temps maximum (les autres
attendront qu'une place se libère).

Le problème est que je ne sais pas comment faire cela techniquement :p
J'ai tout d'abord pensé à l'utilisation de Mutex mais à moins que je ne me
trompe, il ne permet pas de définir cette limite de 5 : un Mutex permet
uniquement de controler un accès unique (donc la limite sera tjs de 1).

Comment puis-je faire ?

Merci d'avance,
Cordialement,
Bull



Avatar
TINANT Hervé [MVP]
Avec une variable pour faire le compteur et un lock dessus tu dois pouvoir
t'en sortir :)

Cordialement,
TINANT Hervé

"Bull" a écrit dans le message de news:

Bonsoir,

J'ai une application qui doit consulter par exemple le contenu de 100
pages web. Pour accéder le processus, j'utilise une thread qui lance en
parallèle la consultation des 100 pages.

Problème : du coup, très souvent le timeout est dépassé et les pages non
consultées.

Je voudrais donc limiter par exemple à 5 consultations maxi en même temps.
Ainsi lorsque je demande à ce que les 100 pages soient consultées, elles
se feront en parallèle, mais 5 en même temps maximum (les autres
attendront qu'une place se libère).

Le problème est que je ne sais pas comment faire cela techniquement :p
J'ai tout d'abord pensé à l'utilisation de Mutex mais à moins que je ne me
trompe, il ne permet pas de définir cette limite de 5 : un Mutex permet
uniquement de controler un accès unique (donc la limite sera tjs de 1).

Comment puis-je faire ?

Merci d'avance,
Cordialement,
Bull



Avatar
Bull
Mon problème c'est justement quel objet utilisé pour le lock ?

Cordialement,
Bull

"TINANT Hervé [MVP]" a écrit dans le message de
news: eV2I%
Avec une variable pour faire le compteur et un lock dessus tu dois pouvoir
t'en sortir :)

Cordialement,
TINANT Hervé

"Bull" a écrit dans le message de news:

Bonsoir,

J'ai une application qui doit consulter par exemple le contenu de 100
pages web. Pour accéder le processus, j'utilise une thread qui lance en
parallèle la consultation des 100 pages.

Problème : du coup, très souvent le timeout est dépassé et les pages non
consultées.

Je voudrais donc limiter par exemple à 5 consultations maxi en même
temps. Ainsi lorsque je demande à ce que les 100 pages soient consultées,
elles se feront en parallèle, mais 5 en même temps maximum (les autres
attendront qu'une place se libère).

Le problème est que je ne sais pas comment faire cela techniquement :p
J'ai tout d'abord pensé à l'utilisation de Mutex mais à moins que je ne
me trompe, il ne permet pas de définir cette limite de 5 : un Mutex
permet uniquement de controler un accès unique (donc la limite sera tjs
de 1).

Comment puis-je faire ?

Merci d'avance,
Cordialement,
Bull







Avatar
Bull
Oui mais imaginons que je veuille passer la limite de 5 à 15, il va me
falloir créer 15 instances :-//
Ca ne me parait pas très propre / optimisé comme programmation non ?

"VANNESTE Xavier" a écrit dans le message de news:

sauf si tu créer 5 instance d'objet controlé par mutex
"Bull" a écrit dans le message de news:

Bonsoir,

J'ai une application qui doit consulter par exemple le contenu de 100
pages web. Pour accéder le processus, j'utilise une thread qui lance en
parallèle la consultation des 100 pages.

Problème : du coup, très souvent le timeout est dépassé et les pages non
consultées.

Je voudrais donc limiter par exemple à 5 consultations maxi en même
temps. Ainsi lorsque je demande à ce que les 100 pages soient consultées,
elles se feront en parallèle, mais 5 en même temps maximum (les autres
attendront qu'une place se libère).

Le problème est que je ne sais pas comment faire cela techniquement :p
J'ai tout d'abord pensé à l'utilisation de Mutex mais à moins que je ne
me trompe, il ne permet pas de définir cette limite de 5 : un Mutex
permet uniquement de controler un accès unique (donc la limite sera tjs
de 1).

Comment puis-je faire ?

Merci d'avance,
Cordialement,
Bull







Avatar
TINANT Hervé [MVP]
Un simple mutex devrait suffir a proteger la synchro de ce compteur ...

Cordialement,
CrazyHT

"Bull" a écrit dans le message de news:

Mon problème c'est justement quel objet utilisé pour le lock ?

Cordialement,
Bull

"TINANT Hervé [MVP]" a écrit dans le message de
news: eV2I%
Avec une variable pour faire le compteur et un lock dessus tu dois
pouvoir t'en sortir :)

Cordialement,
TINANT Hervé

"Bull" a écrit dans le message de news:

Bonsoir,

J'ai une application qui doit consulter par exemple le contenu de 100
pages web. Pour accéder le processus, j'utilise une thread qui lance en
parallèle la consultation des 100 pages.

Problème : du coup, très souvent le timeout est dépassé et les pages non
consultées.

Je voudrais donc limiter par exemple à 5 consultations maxi en même
temps. Ainsi lorsque je demande à ce que les 100 pages soient
consultées, elles se feront en parallèle, mais 5 en même temps maximum
(les autres attendront qu'une place se libère).

Le problème est que je ne sais pas comment faire cela techniquement :p
J'ai tout d'abord pensé à l'utilisation de Mutex mais à moins que je ne
me trompe, il ne permet pas de définir cette limite de 5 : un Mutex
permet uniquement de controler un accès unique (donc la limite sera tjs
de 1).

Comment puis-je faire ?

Merci d'avance,
Cordialement,
Bull