gpt4 book ai didi

zombie-process - 什么是僵尸,它们的成因是什么?有僵尸进程和僵尸对象吗?

转载 作者:行者123 更新时间:2023-12-03 08:02:16 26 4
gpt4 key购买 nike

我可以找到有关僵尸的问题,但没有一个能直接解决它们是什么以及它们为什么发生以及如何发生。有一些解决了在回答特定问题的上下文中僵尸进程是什么,但没有解决原因。

还有关于僵尸进程的问题和关于Objective-C/Cocoa相关的僵尸对象的问题。有什么区别或它们之间的关系是什么? Mac/iPhone 上的“EXEC_BAD_ACCESS”(或其他平台上的类似错误)是否与僵尸同义?

如何预防僵尸,是否有任何最佳实践可以帮助避免它们?

将这些信息放在一个地方会很有帮助。如果可能,这个问题旨在与平台/语言无关。

最佳答案

僵尸进程和僵尸对象完全无关。僵尸进程是指父进程启动子进程,子进程结束,但父进程不获取子进程的退出代码。进程对象必须一直存在直到发生这种情况 - 它不消耗资源并且已经死了,但它仍然存在 - 因此,“僵尸”。

僵尸对象是 Cocoa/CoreFoundation 的一个调试特性,可以帮助你捕捉内存错误——通常当一个对象的引用计数降为零时,它会立即被释放,但这使得调试变得困难。相反,如果启用了僵尸对象,则该对象的内存不会立即释放,它只是被标记为僵尸,并且将记录任何进一步使用它的尝试,您可以跟踪该对象在其生命周期后在代码中的何处使用.

EXEC_BAD_ACCESS 是普通的“您使用了错误的指针”异常,就像我所做的一样:

(*(0x42)) = 5;

关于zombie-process - 什么是僵尸,它们的成因是什么?有僵尸进程和僵尸对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3220676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com