2010-05-11 12 views
6

C'è una differenza concettuale tra i termini "Canale" e "Stream"? I termini richiedono/determinano, ad esempio, il numero consentito di consumatori o produttori concorrenti?Concetti: Canale vs Stream

che sto attualmente sviluppando un canale/flusso di DataFlowVariables, che può essere scritto da uno produttore e letta da uno dei consumatori per l'implementazione è distruttivo/mutevole. Questo sarebbe un canale o flusso, c'è qualche differenza?

Grazie

risposta

7

Questi termini sono ampiamente utilizzati per molti e vari concetti. Sono approssimativamente sinonimi e spesso usati in modo intercambiabile.

In alcuni contesti, un canale fa riferimento a una suddivisione di un grande mezzo di comunicazione. Ad esempio, le stazioni radio e TV utilizzano "canali" per descrivere l'approccio di multiplazione a divisione di frequenza per separare i segnali. Il protocollo del bus di messaggi AMQP utilizza i canali per il traffico multiplex su una sessione TCP.

In informatica, il termine canale a volte si riferisce a una pipa orientata ai messaggi tra gli endpoint comunicanti. Il CSP di Tony Hoare (da cui sono derivati ​​Occam, Limbo e Google's Go) utilizza i canali come unità fondamentale di comunicazione e sincronizzazione.

Il termine flusso, OTOH, tende a riferirsi più a un tubo di comunicazione orientato ai byte, come un socket TCP, che fornisce un flusso continuo di byte o caratteri, senza una chiara suddivisione che separa un messaggio da un altro .

+3

OTOH = d'altra parte; ho pensato che questo potrebbe risparmiare un po 'di tempo per googling per madrelingua come me. – lyomi

+0

@lyomi: Sono due clic del mouse. La risposta è _in_ la pagina dei risultati. –

2

Io non sono molto sicuro di cosa si sta parlando, ma ...

Un canale di solito si riferisce a qualche costruzione fisica o percorso virtuale per lo streaming di qualcosa attraverso.

A stream è in realtà qualcosa che viene trasmesso attraverso un canale.

Ha senso?

2

Il "Canale" determina COME si trasmettono i dati. Il "flusso" è il dato concreto trasmesso attraverso un canale.