因为我的程序会在运行过程中根据情况载入多个.a库,可以理解为一个.a就是一个app,运行一段时间之后这个app退出了,我就需要完整的卸载这个.a库以及其运行过程中所有占用的内存等资源。python代码里可能会忘记处理某些东西,但是我能否强制卸载掉?
原来我的方案是想创建两个python对象,一个负责主程序,这个是全局一直存在的。另一个负责一些后来运行的代码,就像app一样,运行完了我可以销毁整个python引擎,这样应该是最好的。但是我看代码里有很多全局变量,这样做估计是不现实吧?所以只能想着上面那个方案,能否整体卸载了
离线
是的,跑两个根对象是不可行的,还有一些共享资源比如内存管理需要加锁才行。
obj_deinit(根对象) 在不开多线程的时候可以基本是卸载完毕,但是多线程还是有可能卸载失败的
完全卸载.a有点困难,尤其是在多线程和带有事件回调的时候,我还是建议你完全重启硬件再加载另一个.a
如果你跑多个任务,那建议你用 _thread 模块跑多线程
离线
顺便恭喜你发现.a可以当作app来用
离线