Articles of locking

espera asincrónica / no locking espera en python

Me gusta mostrar cada letra de una cadena después de esperar un tiempo, para obtener un efecto de máquina de escribir. for char in string: libtcod.console_print(0,3,3,char) time.sleep(50) Pero esto bloquea el hilo principal, y el progtwig se desactiva. Ya no puedes acceder hasta que termine. Nota: se utiliza libtcod

¿Cómo hacer que el raw_input no se bloquee cuando se usa eventlet.monkey_patch () y por qué lo bloquea todo, incluso cuando se ejecuta en otro hilo?

Escribí este código mínimo para explicar mi caso: import threading import time import eventlet eventlet.monkey_patch() def printing_function(): while True: # here i want to do some work print “printing” time.sleep(1) if __name__ == ‘__main__’: thread = threading.Thread(target=printing_function) thread.start() while True: # here i want to wait for users input raw_input(“raw input\n”) print “inside main loop” […]

Cómo evitar sobrescribir un objeto que alguien más ha modificado

Me gustaría encontrar una forma genérica de evitar guardar un objeto si se guarda después de que lo haya comprobado. Podemos asumir que el objeto tiene un campo de timestamp que contiene la timestamp la última modificación. Si hubiera verificado (visité una vista usando un ModelForm, por ejemplo) en t1 y el objeto se guardó […]

multiproceso de Python: escribir en el mismo archivo de Excel

Soy nuevo en Python y estoy tratando de guardar los resultados de cinco procesos diferentes en un archivo de Excel (cada proceso se escribe en una hoja diferente). He leído diferentes publicaciones aquí, pero aún no puedo hacerlo ya que estoy muy confundido acerca de pool.map, colas y lockings, y no estoy seguro de lo […]

¿Cómo leer el nombre FIFO sin lockings?

Creo un FIFO y lo abro periódicamente en modo de solo lectura y sin locking desde a.py: os.mkfifo(cs_cmd_fifo_file, 0777) io = os.open(fifo, os.O_RDONLY | os.O_NONBLOCK) buffer = os.read(io, BUFFER_SIZE) Desde b.py, abre el fifo para escribir: out = open(fifo, ‘w’) out.write(‘sth’) Entonces a.py generará un error: buffer = os.read(io, BUFFER_SIZE) OSError: [Errno 11] Resource temporarily […]

Python / Erlang: ¿Cuál es la diferencia entre Twisted, Stackless, Greenlet, Eventlet, Coroutines? ¿Son similares a los procesos de Erlang?

Mi comprensión incompleta es que Twisted, Stackless, Greenlet, Eventlet, Coroutines hacen uso de IO de red asíncrona y hilos de usuario que son muy ligeros y rápidos de cambiar. Pero no estoy seguro de cuáles son las diferencias entre ellos. También suenan muy similares a los procesos de Erlang. ¿Son más o menos lo mismo? […]

¿Cuándo y cómo usar Tornado? ¿Cuándo es inútil?

Bien, Tornado no es bloqueante y es bastante rápido y puede manejar muchas solicitudes permanentes fácilmente. Pero supongo que no es una bala de plata y si simplemente ejecutamos a ciegas un sitio basado en Django o cualquier otro sitio con Tornado, no se dará ningún aumento de rendimiento. No pude encontrar una explicación completa […]

bloques – enviar entrada a la tubería de subproceso de Python

Estoy probando conductos de subprocesos con python. Soy consciente de que puedo hacer lo que hacen los progtwigs a continuación en Python directamente, pero ese no es el punto. Solo quiero probar la tubería para saber cómo usarla. Mi sistema es Linux Ubuntu 9.04 con el python 2.6 predeterminado. Comencé con este ejemplo de documentación […]

Cómo realizar el locking de archivos en Windows sin instalar un nuevo paquete

He agregado código a un paquete de Python ( brian2 ) que coloca un locking exclusivo en un archivo para evitar una condición de carrera. Sin embargo, como este código incluye llamadas a fcntl , no funciona en Windows. ¿Hay alguna manera de que pueda colocar lockings exclusivos en archivos en Windows sin instalar un […]

Hilo de Python y GIL

Estaba leyendo sobre el GIL y nunca se especificó realmente si esto incluye el hilo principal o no (supongo que sí). La razón por la que pregunto es porque tengo un progtwig con una configuración de subprocesos que modifica un diccionario. El hilo principal agrega / elimina en función de la entrada del jugador, mientras […]