Articles of hilo de seguridad

¿Las variables de instancia de Python son seguras para subprocesos?

OK, revisa los siguientes códigos primero: class DemoClass(): def __init__(self): #### I really want to know if self.Counter is thread-safe. self.Counter = 0 def Increase(self): self.Counter = self.Counter + 1 def Decrease(self): self.Counter = self.Counter – 1 def DoThis(self): while True: Do something if A happens: self.Increase() else: self.Decrease() time.sleep(randomSecs) def DoThat(self): while True: Do […]

Python 2.7: Imprimir hilo seguro

He visto una publicación similar aquí, sin embargo, se refiere a Python 2.6 y esperaba que hubiera una forma más fácil. Al leer el hilo, parece que la mejor manera es simplemente reemplazar todas mis declaraciones de impresión con sys.stdout.write (s + ‘\ n’)? Esperaba que hubiera una forma mejor que me permitiera usar la […]

¿Cómo hacer que los contenedores incorporados (conjuntos, diccionarios, listas) sean seguros?

Entiendo de esta pregunta que si quiero tener un set que sea seguro para subprocesos, tengo que implementar la parte de seguridad de subprocesos por mi cuenta. Por lo tanto podría llegar a: from threading import Lock class LockedSet(set): “””A set where add() and remove() are thread-safe””” def __init__(self, *args, **kwargs): # Create a lock […]

¿Los contenedores incorporados de Python son seguros para subprocesos?

Me gustaría saber si los contenedores incorporados de Python (lista, vector, conjunto …) son seguros para subprocesos? ¿O necesito implementar un entorno de locking / deslocking para mi variable compartida?

¿El diccionario de Python es seguro para hilos?

Algunos dijeron que el diccionario de Python es seguro para subprocesos. ¿Significa que puedo o no puedo modificar los elementos de un diccionario mientras estoy iterando sobre él?

Seguridad del hilo en el diccionario de Python

Tengo una clase que contiene un diccionario. class OrderBook: orders = {‘Restaurant1’: None, ‘Restaurant2’: None, ‘Restaurant3’: None, ‘Restaurant4’: None} @staticmethod def addOrder(restaurant_name, orders): OrderBook.orders[restaurant_name] = orders Y estoy ejecutando 4 hilos (uno para cada restaurante) que llaman al método OrderBook.addOrder . Aquí está la función ejecutada por cada hilo: def addOrders(restaurant_name): #creates orders … OrderBook.addOrder(restaurant_name, […]

¿Son seguras las hebras globales en el matraz? ¿Cómo comparto datos entre solicitudes?

En mi aplicación, el estado de un objeto común se cambia al realizar solicitudes, y la respuesta depende del estado. class SomeObj(): def __init__(self, param): self.param = param def query(self): self.param += 1 return self.param global_obj = SomeObj(0) @app.route(‘/’) def home(): flash(global_obj.query()) render_template(‘index.html’) Si ejecuto esto en mi servidor de desarrollo, espero obtener 1, 2, […]