Концепции: канал против потока - PullRequest
11 голосов
/ 11 мая 2010

Есть ли концептуальная разница между терминами «Канал» и «Поток»? Требуют ли / определяют ли условия, например, допустимое количество одновременных Потребителей или Производителей?

В настоящее время я разрабатываю канал / поток DataFlowVariables, который может быть записан одним производителем и прочитан одним потребителем, поскольку реализация является деструктивной / изменяемой. Будет ли это Канал или Поток, есть ли какая-то разница?

Спасибо

Ответы [ 3 ]

12 голосов
/ 11 мая 2010

Эти термины широко используются для многих и разнообразных понятий. Они примерно синонимичны и часто используются взаимозаменяемо.

В некоторых контекстах канал относится к подразделению большой среды связи. Например, радио- и телевизионные станции используют «каналы» для описания подхода мультиплексирования с частотным разделением к разделению сигналов. Протокол шины сообщений AMQP использует каналы для мультиплексирования трафика в сеансе TCP.

В информатике термин «канал» иногда относится к каналу, ориентированному на сообщения, между связанными конечными точками. CSP Тони Хоара (из которого взяты Occam, Limbo и Google Go) используют каналы как основную единицу коммуникации и синхронизации.

Термин stream , OTOH, имеет тенденцию больше ссылаться на байтово-ориентированный канал связи, такой как сокет TCP, который доставляет непрерывный поток байтов или символов без четкого разделения на одно сообщение от другого.

3 голосов
/ 11 мая 2010

«Канал» определяет, КАК вы передаете данные. «Поток» - это конкретные данные, передаваемые по одному каналу.

3 голосов
/ 11 мая 2010

Я не совсем уверен, о чем ты говоришь, но ...

A канал обычно относится к некоторой физической структуре или виртуальному пути для потоковой передачи чего-либо.

Поток на самом деле является тем, что передается по каналу.

Имеет ли это какой-то смысл?

...