Re: Thread Pool
lasizoillo <[email protected]> Mon, 21 Dec 2009 18:24:36 +0100
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <[email protected]> |
--===============1586460935== Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable El d=C3=ADa 21 de diciembre de 2009 15:32, Pepe Aracil <[email protected]> = escribi=C3=B3: > Hola. > > Hace unos meses escrib=C3=AD esta implementaci=C3=B3n de un pool de tarea= s: > http://code.activestate.com/recipes/576910/ > > Es un pool que crea nuevas threads a medida que se van necesitando. > > El caso es que cuando llamo muchas veces seguidas a una misma funci=C3=B3= n que no > es > reentrante (se protege con un lock), el pool se llena hasta "maxWorkers" > impidiendo > que otras funciones se ejecuten. > > La idea ser=C3=ADa informar al pool de que una determinada funci=C3=B3n n= o es > reentrante para que > la ponga en una cola a parte =C2=A0y se asegure de que solo se est=C3=A1 = ejecutando un > thread > a la vez con dicha funci=C3=B3n. > > =C2=BFAlguna idea de como implementarlo de forma eficiente? > > Creo que se me est=C3=A1 escapando algo, porque se me ocurre como soluci=C3= =B3n algo muy simple: - Creas un pool para las funciones reentrantes con el maxWorkers > 1 - Creas otro pool para las funciones no reentrantes con el maxWorkers =3D = 1 Un saludo: Javi --===============1586460935== Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline _______________________________________________ Lista de correo Python-es = http://listas.aditel.org/listinfo/python-es FAQ: http://listas.aditel.org/faqpyes --===============1586460935==--