Capítulo 21. Roscado avanzado

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Comenzamos el Capítulo 14 con los fundamentos de los hilos como precursores de las tareas y la asincronía. En concreto, mostramos cómo iniciar y configurar un hilo, y cubrimos conceptos esenciales como la agrupación de hilos, el bloqueo, el giro y los contextos de sincronización. También introdujimos el bloqueo y la seguridad de los hilos, y demostramos la construcción de señalización más sencilla, ManualResetEvent.

Este capítulo retoma el tema de los subprocesos donde lo dejó el Capítulo 14. En las tres primeras secciones, profundizamos en la sincronización, el bloqueo y la seguridad de los subprocesos. A continuación tratamos:

  • Bloqueo no exclusivo (Semaphore y bloqueos de lector/escritor)

  • Todas las construcciones de señalización (AutoResetEvent, ManualResetEvent, Countdow⁠n​Event, y Barrier)

  • Inicialización perezosa (Lazy<T> y LazyInitializer)

  • Almacenamiento hilo-local (ThreadStaticAttribute, ThreadLocal<T>, y GetData/SetData)

  • Temporizadores

La rosca es un tema tan amplio que hemos puesto material adicional en línea para completar el cuadro. Visita http://albahari.com/threading para debatir sobre los siguientes temas, más arcanos:

  • Monitor.Wait y Monitor.Pulse para escenarios de señalización especializados

  • Técnicas de sincronización no bloqueante para la microoptimización (Interlockedbarreras de memoria, volatile)

  • SpinLock y SpinWait ...

Get C# 12 en pocas palabras now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.