Канал (англ.Channel) — програмний механізм взаємодії між процесами і їх синхронізації при передачі даних (обміну повідомленнями). Повідомлення можуть бути надіслані через канал і інший процес або потік, що має посилання на канал, може отримувати повідомлення з каналу як з файлового потоку. Різні реалізації каналів можуть бути синхронними або асинхронними, використовувати або не використовувати буферизацію повідомлень.
Канали, створені за аналогією з моделлю CSP, є синхронними: процес, що очікує одержання даних з каналу, блокується, доки дані не надійдуть у канал. Такі реалізації називають «rendezvous». Типові операції над синхронними каналами представлені на прикладі інтерфейсів каналів бібліотеки libthread для мови C системи BSD[3]:
Створення каналу фіксованого або змінного розміру, функція повертає вказівник або посилання: