Junior — Middle
What is the purpose and application of a queue in programming?
sobes.tech AI
Answer from AI
A queue in programming is a data structure that operates on the FIFO (First In, First Out) principle, meaning the first element entered is the first to exit.
Purpose and applications:
- Task management: for example, in task schedulers or event processing.
- Data buffering: when transferring data between processes or threads.
- Request processing: for example, in web servers for sequential request handling.
In Go, a queue can be implemented using slices or channels, which provide thread-safe data exchange.
An example of a simple queue in Go using a slice:
package main
import "fmt"
type Queue []int
func (q *Queue) Enqueue(val int) {
*q = append(*q, val)
}
func (q *Queue) Dequeue() (int, bool) {
if len(*q) == 0 {
return 0, false
}
val := (*q)[0]
*q = (*q)[1:]
return val, true
}
func main() {
var q Queue
q.Enqueue(10)
q.Enqueue(20)
val, ok := q.Dequeue()
if ok {
fmt.Println(val) // 10
}
}
Thus, a queue helps organize ordered processing of data or events.