1) When a resource is shared among multiple consumers. Examples include CPU scheduling, Disk Scheduling.
2) When data is transferred asynchronously (data not necessarily received at same rate as sent) between two processes. Examples include IO Buffers, pipes, file IO, etc.
3) The application of queue in load balancing is a bit difficult to understand but it used for this purpose too.
Hence the answer should be all of these