Зав’язані канали

З обмеженими (синхронними) каналами send може блокувати поточний потік:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 8 minutes.
  • Виклик send() заблокує поточний потік, доки в каналі не залишиться місця для нового повідомлення. Потік може бути заблокований на невизначений термін, якщо ніхто не читає з каналу.
  • Виклик send() буде перервано з помилкою (ось чому він повертає Result), якщо канал закрито. Канал закривається, коли отримувача видалено.
  • Обмежений канал з нульовим розміром називається “каналом зустрічі”. Кожне надсилання блокуватиме поточний потік, доки інший потік не викличе recv.