Aký je rozdiel medzi funkciami opätovného vstupu a funkciami bezpečnými pre vlákna?
Aký je rozdiel medzi funkciami opätovného vstupu a funkciami bezpečnými pre vlákna?

Video: Aký je rozdiel medzi funkciami opätovného vstupu a funkciami bezpečnými pre vlákna?

Video: Aký je rozdiel medzi funkciami opätovného vstupu a funkciami bezpečnými pre vlákna?
Video: Everything you should know about thread safety in 2 minutes or less 2024, December
Anonim

Niť bezpečné kód je taký, ktorý možno vykonať z viacerých závity bezpečne , aj keď hovory prebiehajú súčasne na viacerých vlákna . Reentrant kód znamená, že môžete robiť všetky veci vlákno bezpečné kód môže dobut aj zaručiť bezpečnosť aj keď voláte rovnako funkciu v rámci toho istého niť.

Okrem toho, čo je reentrantná funkcia?

A funkciu je reentrant ak ho možno vyvolať počas procesu vykonávania. Toto je funkciu je reentrant ak ho možno prerušiť uprostred vykonávania (napríklad signálom alebo prerušením) a znovu vyvolať pred dokončením prerušeného vykonávania.

Okrem vyššie uvedeného, je vlákno QT bezpečné? Poznámky na Qt Mnohé triedy Qt triedy sú reentrantné, ale nerobia sa niť - bezpečné , pretože ich robí niť - bezpečné by spôsobilo dodatočné náklady na opakované zamykanie a odomykanie QMutexu. Napríklad QString je reentrantný, ale nie niť - bezpečné . Niektorí Qt triedy a funkcie sú niť - bezpečné.

Čo sú teda funkcie bezpečné pre vlákna?

z wikipedie: Bezpečnosť závitu je koncepcia počítačového programovania použiteľná v kontexte multi- závitové programy. Najmä musí uspokojiť potrebu viacerých vlákna prístup k rovnakým zdieľaným údajom a potreba, aby k zdieľanému údaju mal prístup iba jeden niť v ktoromkoľvek danom čase.

Čo sú rekurzívne funkcie?

Z hľadiska programovania a rekurzívna funkcia možno definovať ako rutinu, ktorá sa volá priamo alebo nepriamo.

Odporúča: