Saltear al contenido principal

Dominar la programación de subprocesos múltiples con Go (Golang)

Tomar Curso

Descripción

El ambiente en la reunión en el piso 12 de un banco de inversión internacional fue tan desolador como parece. Los desarrolladores de la empresa se reunieron para discutir la mejor manera de avanzar después de que una aplicación central crítica fallara y causara una interrupción general del sistema.

“Chicos, tenemos un problema serio aquí. Descubrí que la interrupción fue causada por una condición de carrera en nuestro código, que se introdujo hace un tiempo y se activó anoche «. dice Mark Adams, desarrollador senior.

La habitación se queda en silencio. Los autos que se encuentran fuera de las ventanas del piso al techo avanzan lenta y silenciosamente en el pesado tráfico de la ciudad. Los desarrolladores senior comprenden de inmediato la gravedad de la situación, y se dan cuenta de que ahora estarán trabajando las 24 horas del día para solucionar el problema y resolver el desorden en el almacén de datos. Los desarrolladores menos experimentados entienden que una condición de carrera es grave, pero no saben exactamente qué la causa y, por lo tanto, mantienen la boca cerrada.

Finalmente, Brian Holmes, gerente de entregas, rompe el silencio con «La aplicación se ha estado ejecutando durante meses sin ningún problema, no hemos publicado ningún código recientemente, ¿cómo es posible que el software se haya estropeado?»

Todos sacuden la cabeza y vuelven a su escritorio dejando a Brian solo en la habitación, desconcertado. Saca su teléfono y busca en Google «condición de carrera».

¿Suena familiar? ¿Cuántas veces ha escuchado a otro desarrollador hablar sobre el uso de subprocesos y programación concurrente para resolver un problema en particular, pero por temor a permanecer fuera de la discusión?

Aquí está el pequeño secreto que los desarrolladores senior nunca compartirán … La programación de subprocesos múltiples no es mucho más difícil que la programación normal. Los desarrolladores tienen miedo de la programación concurrente porque piensan que es un tema avanzado con el que solo los desarrolladores con mucha experiencia pueden jugar.

Esto está lejos de la verdad. Nuestras mentes están muy acostumbradas a lidiar con la concurrencia. De hecho, hacemos esto en nuestra vida diaria sin ningún problema, pero de alguna manera luchamos para traducir esto en nuestro código. Una de las razones de esto es que no estamos familiarizados con los conceptos y herramientas disponibles para administrar esta concurrencia. Este curso está aquí para ayudarlo a comprender cómo usar herramientas y conceptos de subprocesos múltiples para administrar su programación paralela. Está diseñado para ser lo más práctico posible. Comenzamos con algo de teoría sobre el paralelismo y luego explicamos cómo el sistema operativo maneja múltiples procesos e hilos. Más adelante pasaremos a explicar las múltiples herramientas disponibles resolviendo problemas de ejemplo utilizando subprocesos múltiples.

En este curso usamos el lenguaje de programación Go de Google con sus gorutinas, sin embargo los conceptos aprendidos aquí se pueden aplicar a la mayoría de los lenguajes de programación.

Todo el código de este curso se puede encontrar en github, nombre de usuario / proyecto: cutajarj / multithreadingingo

Ver Comentarios del Curso

Volver arriba