在调用oss_get_object_to_file等接口后,会出现win32的线程,这个会影响到后续程序的操作
resp_headers = aos_table_make(options->pool, 5);
headers = aos_table_make(p, 1);
和这两句的参数有关系么?
而且这两个线程无法消除,
aos_pool_destroy(p);和aos_http_io_deinitialize();后都还在
因为是win32的嘛。。。
按上面的提示,应该是因为内存泄露导致的把?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在您提到的场景中,线程的持续存在可能与资源释放不完全有关,但直接将问题归咎于内存泄露可能需要进一步的诊断确认。根据提供的参考资料和您的描述,我们可以分析如下:
线程持续存在的原因:
aos_http_io_deinitialize
函数调用后,某些底层网络库或线程处理逻辑未完全清理有关。特别是当使用了类似异步IO操作时,后台线程可能为了保持连接复用、任务队列处理等目的而继续运行。aos_table_make
用于创建参数表和响应头表,它们与线程管理并不直接相关。这两个函数主要负责分配内存以存储HTTP请求的头部信息,不太可能是导致后台线程持续存在的直接原因。解决思路:
注意事项:
aos_table_make
创建的资源,在不再需要时通过正确的途径释放,是良好的编程习惯,有助于避免潜在的资源泄露问题。综上所述,后台线程的持续存在更可能与OSS SDK内部的网络库管理或异步处理机制相关,而非直接由您指出的那两行代码引起。建议按照上述解决思路进行排查和优化。