2010-05-11 11 views
6

¿Existe una diferencia conceptual entre los términos "Channel" y "Stream"? ¿Los términos requieren/determinan, por ejemplo, el número permitido de Consumidores o Productores concurrentes?Conceptos: Channel vs. Stream

Actualmente estoy desarrollando un canal/Arroyo de DataFlowVariables, que puede estar escrito por una productor y leído por uno consumidor como la implementación es destructivo/mutable. ¿Sería esto un Canal o una Corriente, hay alguna diferencia?

Gracias

Respuesta

7

Estos términos se usan ampliamente para muchos y variados conceptos. Son aproximadamente sinónimos y, a menudo, se usan indistintamente.

En algunos contextos, un canal se refiere a una subdivisión de un medio de comunicación grande. Por ejemplo, las estaciones de radio y televisión usan "canales" para describir el enfoque de multiplexación por división de frecuencia para separar las señales. El protocolo de bus de mensajes AMQP usa canales para multiplexar tráfico a través de una sesión TCP.

En informática, el término canal a veces se refiere a un conducto orientado a mensajes entre extremos de comunicación. El CSP de Tony Hoare (del cual se derivan Occam, Limbo y Google's Go) usa canales como la unidad fundamental de comunicación y sincronización.

El término corriente, Otoh, tiende a referirse más a un tubo de comunicación orientado a bytes, tal como un socket TCP, que proporciona un flujo continuo de bytes o caracteres, sin una subdivisión clara que separa un mensaje de otro .

+3

OTOH = por otro lado; pensé que esto podría ahorrar algo de tiempo de búsqueda de Google para hablantes no nativos como yo. – lyomi

+0

@lyomi: Son dos clics del mouse. La respuesta es _en_ ​​la página de resultados. –

2

las que no estoy muy seguro de lo que está hablando, pero ...

Un canal por lo general se refiere a alguna construcción física o vía virtual para transmitir algo a través.

Una corriente es realmente algo que se está transmitiendo a través de un canal.

¿Tiene esto sentido?

2

El "Canal" determina CÓMO se transmiten los datos. La "corriente" es la información concreta transmitida a través de un canal.