[1] FIFO's opposite is LIFO, last-in-first-out, where the youngest entry or "top of the stack" is processed first.
[2] A priority queue is neither FIFO or LIFO but may adopt similar behaviour temporarily or by default.
Depending on the application, a FIFO could be implemented as a hardware shift register, or using different memory structures, typically a circular buffer or a kind of list.
Some devices feature multiple FIFOs for simultaneously and independently queuing different types of information.
[3] FIFOs are commonly used in electronic circuits for buffering and flow control between hardware and software.
In its hardware form, a FIFO primarily consists of a set of read and write pointers, storage and control logic.
Conversely, one may use either a leaky bucket approach or pointer arithmetic to generate flags in synchronous FIFO implementations.