Go

Channels

Channels, buffered vs unbuffered, close, select, range sobre channels, nil channels

22 preguntas de entrevista·
Junior
1

¿Qué es un channel en Go?

Respuesta

Un channel es un tipo de dato que permite la comunicación y la sincronización entre goroutines. Actúa como un conducto tipado que permite enviar y recibir valores de manera thread-safe. Usa channels para compartir datos entre goroutines en lugar de compartir la memoria directamente.

2

¿Cómo crear un unbuffered channel de enteros en Go?

Respuesta

Un unbuffered channel se crea con make(chan T) sin especificar capacidad. Bloquea al emisor hasta que un receptor esté listo, garantizando una sincronización estricta. Usa unbuffered channels para comunicaciones one-to-one que requieren sincronización explícita.

3

¿Cuál es la diferencia principal entre un buffered y un unbuffered channel?

Respuesta

Un unbuffered channel bloquea al emisor hasta que un receptor esté listo (sincronización estricta), mientras que un buffered channel puede almacenar valores hasta su capacidad antes de bloquear. Los buffered channels desacoplan las goroutines y mejoran el rendimiento en algunos casos, pero pueden ocultar problemas de concurrencia. Usa unbuffered para la sincronización, buffered para el throughput.

4

¿Cómo crear un buffered channel con una capacidad de 10 elementos?

5

¿Cómo enviar un valor a un channel?

+19 preguntas de entrevista

Domina Go para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis