Souběhová podmínka

Souběhová podmínka nastane, když softwarový program závisí na načasování jednoho nebo více procesů, aby správně fungoval. Pokud vlákno běží nebo skončí v neočekávanou dobu, může to způsobit nepředvídatelné chování, například nesprávný výstup nebo uváznutí programu.

Většina softwarových programů je vícevláknová, což znamená, že může zpracovávat několik vláken současně. Dobře naprogramovaná aplikace zajistí, aby byly výsledky jednotlivých vláken zpracovány v očekávaném pořadí. Pokud program závisí na vláknech, která se spouštějí v nepředvídatelném pořadí, může nastat souběhová podmínka.

Jednoduchým příkladem je logické hradlo, které zpracovává logické hodnoty. Hradlo AND má dva vstupy a jeden výstup. Pokud jsou vstupy A a B pravdivé, hradlo AND vytvoří hodnotu TRUE. Pokud je jeden nebo oba vstupy nepravdivé, vytvoří hodnotu FALSE. Souběhová podmínka může nastat, pokud program zkontroluje výsledek logického hradla dříve, než jsou načteny proměnné A a B. Správný postup by byl:

  1. Načíst proměnnou A
  2. Načíst proměnnou B
  3. Zkontrolovat výsledek logického hradla AND

Nesprávné pořadí by bylo:

  1. Načíst proměnnou A
  2. Zkontrolovat výsledek logického hradla AND
  3. Načíst proměnnou B

Výsledek druhého výše uvedeného příkladu může, ale nemusí být stejný jako u prvního příkladu. Proměnná B může být například FALSE před načtením i po něm, takže by se výsledek nezměnil. Pokud je A FALSE, nezáleží na tom, zda je B TRUE, nebo FALSE. Pokud jsou však A i B pravdivé, výsledkem by měla být hodnota TRUE. Načtení proměnné B až po kontrole výsledku logického hradla by vytvořilo nesprávný výsledek FALSE.

Nekonzistentní výstup způsobený souběhovými podmínkami může vést k chybám, které se obtížně odhalují. Programátoři se těmto problémům mohou vyhnout tím, že zajistí zpracování vláken v konzistentním pořadí.

Aktualizováno January 24, 2020 od Per C.

quizOtestujte své znalosti

Which of the following best describes an application "deadlock?"

A
It cannot be opened because it requires an unknown password.
0%
B
It is locked by the system and cannot be deleted.
0%
C
It cannot access a necessary resource and becomes unresponsive.
0%
D
It avoids quitting since unsaved files are still open.
0%
Correct! Incorrect!     View the Deadlock definition.
More Quizzes →

Počítačový slovník Tech Terms

Definice Souběhová podmínka na této stránce je originální definice napsaná autory TechTerms.com. Pokud chcete na tuto stránku odkazovat nebo tuto definici citovat, použijte prosím zelený citační pruh přímo pod definicí.

Naším cílem je vysvětlovat počítačovou terminologii srozumitelným způsobem. U každé zveřejněné definice usilujeme o přesnost a jednoduchost. Pokud máte zpětnou vazbu nebo chcete navrhnout nový technický pojem, kontaktujte nás.

Newsletter Tech Terms

Rozšiřte své technické znalosti s naším denním nebo týdenním newsletterem! Přihlaste se ještě dnes a dostávejte nové pojmy a kvízy přímo do schránky.

Přihlaste se k bezplatnému newsletteru TechTerms

Jak často chcete dostávat e-mail?

Odhlásit se nebo změnit frekvenci můžete kdykoli pomocí odkazů v každém e-mailu. Dotazy? Prosím kontaktujte nás.

Poznámka: Newsletter je zasílán v angličtině.