Sobes.tech
Back to questions
Junior — Middle
84

Какое назначение и применение у очереди в программировании?

Companies where asked
Lamoda Tech

Answer from AI

sobes.tech AI

Очередь в программировании — это структура данных, работающая по принципу FIFO (First In, First Out), то есть первый вошедший элемент выходит первым.

Назначение и применение:

  • Управление задачами: например, в планировщиках задач или обработке событий.
  • Буферизация данных: при передаче данных между процессами или потоками.
  • Обработка запросов: например, в веб-серверах для последовательной обработки запросов.

В Go очередь может быть реализована с помощью срезов или каналов (channels), которые обеспечивают потокобезопасный обмен данными.

Пример простой очереди на Go с использованием среза:

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
    }
}

Таким образом, очередь помогает организовать упорядоченную обработку данных или событий.