jaký je nejlepší možný způsob ukončení procesu
- Pokud jde o jednovláknové, použijte
exit()
, protože váš kód není vícevláknový. - Jinak se ujistěte, že všechna vlákna kromě jednoho skončila před posledním vláknem a poté bezpečně zavolejte
exit()
kvůli 1. výše.
Vzhledem k tomu, že k výpadku napájení/hardwaru může dojít kdykoli, je nemožná extrémní obtížnost spolehlivého ukončení vláken uživatelským kódem a chaotická povaha používání paměťových fondů atd. v mnoha netriviálních vícevláknových aplikacích, je lepší navrhnout aplikace a systémy, které dokážou čistit dočasné soubory atd. při spouštění, místo aby se pokoušely mikrospravovat vypínání.
„Ukliďte všechny zdroje, které přidělujete, než odejdete“ zní jako dobrá rada ve třídě nebo na přednášce, ale rychle se stane celým řetězcem albatrosů kolem krku, když čelíte tuctu vláken, front a bazénů v neustále se měnícím dynamickém systému.
Pokud můžete, pokud používáte netriviální OS, nechte ho dělat svou práci a vyčistěte za vás. Je na tom mnohem lépe, než kdy bude váš uživatelský kód.