En la práctica, aprovechando la sintaxis "rendimiento desde" en Python 3.3
La sintaxis "rendimiento desde", introducida en Python 3.3, ofrece una mejora significativa de las capacidades de los generadores y las corrutinas. Establece una conexión bidireccional entre una persona que llama y un subgenerador, lo que permite una comunicación fluida en ambas direcciones.
Casos de uso para "ceder desde"
Lectura Datos de generadores:
def reader():
for i in range(4):
yield '<< %s' % i
def reader_wrapper(g):
yield from g
wrap = reader_wrapper(reader())
for i in wrap:
print(i)
# Result:
# << 0
# << 1
# << 2
# << 3
Envío de datos a corrutinas:
def writer():
while True:
w = (yield)
print('>> ', w)
def writer_wrapper(coro):
yield from coro
w = writer()
wrap = writer_wrapper(w)
wrap.send(None) # Prime the coroutine
for i in range(4):
wrap.send(i)
# Expected result:
# >> 0
# >> 1
# >> 2
# >> 3
Comparación con Micro-Threads
El rendimiento de la sintaxis comparte algunas similitudes con los micro-threads en el sentido de que permite suspender y reanudar corrutinas, creando una alternativa ligera a hilos tradicionales. Sin embargo, las corrutinas son más livianas y tienen una menor sobrecarga de memoria en comparación con los microprocesos. También se ejecutan en el mismo subproceso, lo que evita los problemas asociados con el cambio de contexto en entornos de subprocesos múltiples.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3