GO_INTERVIEW_LIB Telegram 362
💬 Почему использование chan struct{} вместо chan bool предпочтительнее для сигнализации между горутинами?

🔹
chan struct{} сразу показывает, что канал используется исключительно для сигнализации, тогда как chan bool может вызвать путаницу, так как значения true и false могут иметь разный смысл.

🔹 Тип struct{} не занимает памяти — это просто сигнал. Это приводит к небольшой, но все равно оптимизации памяти.

🔹 chan struct{} исключает возможность неправильного использования канала для передачи данных, что может произойти при использовании chan bool.

🔹 Для одноразового сигнала можно просто закрыть канал, что является понятным и эффективным способом передать сигнал нескольким получателям без отправки данных.

📌 Пример:

type JobDispatcher struct {
start chan struct{}
}

func NewJobDispatcher() *JobDispatcher {
return &JobDispatcher{
start: make(chan struct{}),
}
}

func (j *JobDispatcher) Start() {
close(j.start)
}
👍18



tgoop.com/go_interview_lib/362
Create:
Last Update:

💬 Почему использование chan struct{} вместо chan bool предпочтительнее для сигнализации между горутинами?

🔹
chan struct{} сразу показывает, что канал используется исключительно для сигнализации, тогда как chan bool может вызвать путаницу, так как значения true и false могут иметь разный смысл.

🔹 Тип struct{} не занимает памяти — это просто сигнал. Это приводит к небольшой, но все равно оптимизации памяти.

🔹 chan struct{} исключает возможность неправильного использования канала для передачи данных, что может произойти при использовании chan bool.

🔹 Для одноразового сигнала можно просто закрыть канал, что является понятным и эффективным способом передать сигнал нескольким получателям без отправки данных.

📌 Пример:

type JobDispatcher struct {
start chan struct{}
}

func NewJobDispatcher() *JobDispatcher {
return &JobDispatcher{
start: make(chan struct{}),
}
}

func (j *JobDispatcher) Start() {
close(j.start)
}

BY Библиотека Go для собеса | вопросы с собеседований


Share with your friend now:
tgoop.com/go_interview_lib/362

View MORE
Open in Telegram


Telegram News

Date: |

End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. Telegram message that reads: "Bear Market Screaming Therapy Group. You are only allowed to send screaming voice notes. Everything else = BAN. Text pics, videos, stickers, gif = BAN. Anything other than screaming = BAN. You think you are smart = BAN. SUCK Channel Telegram How to create a business channel on Telegram? (Tutorial) The group’s featured image is of a Pepe frog yelling, often referred to as the “REEEEEEE” meme. Pepe the Frog was created back in 2005 by Matt Furie and has since become an internet symbol for meme culture and “degen” culture.
from us


Telegram Библиотека Go для собеса | вопросы с собеседований
FROM American