[python] zamykani jednoho vlakna druhym

Karol Tarcak ktx na matfyz.cz
Středa Srpen 15 12:50:47 CEST 2007


Zdravim,

takyto postup nemozno nazvat riesenie, ale hnusna "praktika" =>
nespolahlive, nebezpecne, nepredvidatelne vysledky ...
Odporucam pozriet dokumentaciu [1] a clanok [2],
pre lenivych:

import threading

# "alokujem" zamok
lock=threading.Lock()

# zamknem (a zaroven cakam kym nebude odomknuty)
lock.acquire()

do_something()

# odomknem
lock.release()

Trochu googlenia by nezaskodilo, napr. pod heslom "python thread lock
example"

Karol


[1] http://docs.python.org/lib/module-threading.html
[2] http://linuxgazette.net/107/pai.html


On Tue, Aug 14, 2007 at 07:02:03PM +0200, Jirka Vejrazka wrote:
>      caute mam maly problem mam dve vlakna urobene cez threading  a
>      potrebujem jedno vlakno uzamknut na chvilku druhym da sa to nejako?
> 
>    Nevim co znamena "uzamknout" a nikdy jsem neresil podobny problem, ale
>    vzhledem k tomu ze vlakna sdileji globalni promenne by nemel byt problem v
>    jednom vlakne nastavit:
> 
>    vlakna_mutex = True
> 
>    a v druhem na vhodnem miste:
> 
>    while vlakna_mutex is True:
>        sleep(1)
> 
>    Tohle by bylo "brutalni reseni" ktere bych zkusil jako prvni.
> 
>    Neco sofistikovanejsiho je treba tady:
>    [1]http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/502283
> 
>      Jirka
> 
>    P.S. Je docela dobre takovymto dotazum dat rozumny predmet mailu...
> 
> References
> 
>    Visible links
>    1. http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/502283



Další informace o konferenci Python