Черга - це концепція вищого рівня, ніж потік. Основними елементами черги є повідомлення / об’єкт, який є цілісною (зазвичай набирається) структурою даних, яку споживач може інтерпретувати самостійно. З іншого боку, в основі потоку є (зазвичай фіксованого розміру) біти / байти / символи, які самі по собі, як правило, безглузді для програми. Послідовність цих символів може складати "повідомлення", але API потоку залишає його програмі, щоб розділити послідовність символів на чутливі фрагменти.
API Stream зазвичай також дозволяє частково читати і записувати, якщо буфери потоків заповнені, а інша сторона не читає / записує; програми, які обробляють черги, зазвичай очікують, що чергу буде їх обробляти внутрішньо.
Черга може бути реалізована над потоком, це робиться шляхом запровадження обрамлення повідомлень. Наприклад, TCP надає потоковий інтерфейс, HTTP побудований поверх TCP і додає обрамлення повідомлень за допомогою кодування передачі вмісту / довжини вмісту. Користувачі API HTTP Connection абстрагуються від розбиття потоку HTTP-з'єднання на HTTP-запити.
З іншого боку, зазвичай, має менший сенс впроваджувати API потоку поверх черги, оскільки обробка кадрів з повідомленнями додає зайві накладні витрати.