作为一名本地 Java 开发人员,我想我已经达到了我习惯的情况。
我正在使用 PyDev 开发一个多线程 Python 2.7 应用程序,并在 Windows 7 64 位上从 Eclipse 运行。它是多线程的,因为它使用 wxPython,因此它使用 GUI 主线程和繁重的线程(我或我有一些繁重的任务),每个回调一个线程。
我已经到了一个弹出0xc00000fd
错误的地步,其中python27.dll
包含一条 appcrash 消息。这发生在线程中的函数返回值时。如果我减少回调正在使用的数据量,那么这段代码可以正常工作,所以我很确定堆栈上的东西太多了,并且任何地方都没有递归出错。
我可以打电话stack_size
在创建之前调用线程来增加我可用的空间,如果我要弄清楚有多少空间可以满足它,也许这可以工作一段时间。线程将不得不做更多而不是更少的工作,所以这似乎是一个创可贴的情况。
我认为 Python 使用堆内存创建了堆栈,所以这在 Python 中应该不是问题吗?它是我的众多第三方 api 之一,它是真正的罪犯吗?那么,如果没有 C 语言中的低级内存创建决策能力,我如何将其中的一些从堆栈中取出并放入堆内存中?