Fronta (programování)

Z Wikipedie, otevřené encyklopedie

Fronta v programování je abstraktní datový typ typu FIFO z anglického First In, First Out - první dovnitř, první ven - (Srovnej s LIFO). Fronta v operačních systémech pro meziprocesovou komunikaci se také názývá roura (angl. pipe).


[editovat] Minimální implementace fronty

  • inicializace fronty (create)
  • vlož položku na začátek fronty (write)
  • vyber položku z konce fronty s čekáním pokud je fronta prázdná (read)
  • vyber položku z konce fronty bez čekání - doplňková funkce

[editovat] Synchronizace

Fronta zpráv je synchronizační primitivum. Skládá se z fronty, do které se ukládají zprávy, funkce pro odeslání zprávy (která může blokovat při zaplnění fronty) a funkce pro přijetí zprávy, která blokuje proces pokud zpráva není přítomna. Fronta může být pojmenovaná nebo může patřit konkrétnímu programu (a nikdo jiný z ní nesmí zprávy číst).

V praxi existuje obvykle i funkce zjišťující, zda je přítomna zpráva (bez čekání), ale pro funkci synchronizačního primitiva není potřebná.

[editovat] Podívejte se také na