社区
Qt
帖子详情
qt 线程 的问题
fight_flight
2010-09-29 10:57:16
线程类中重载的run函数运行结束后,是不是线程占据的内存资源会自动返还系统
...全文
242
10
打赏
收藏
qt 线程 的问题
线程类中重载的run函数运行结束后,是不是线程占据的内存资源会自动返还系统
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
swift19221
2011-08-30
打赏
举报
回复
一群菜鸟,
线程管理类和线程都没有分清楚!
还记得MFC的类吗? 与此类似。
一个MFC的类可能管理了一个GUI资源,比如窗口
当这个类析构的时候,被管理的GUI资源也会被删除,
除非在析构前调用了 detach(),
线程管理类就像MFC的类, 线程就像受MFC类管理的GUI资源
fight_flight
2010-10-11
打赏
举报
回复
这个线程里有使用界面一个控件的指针显示信息,当我把相应的语句屏蔽之后内存就不会增加了。这种情况要怎样就觉呢?是不是涉及资源的互斥呢?
mujianhua1982
2010-10-10
打赏
举报
回复
学习了!!!!!!
dbzhang800
2010-10-09
打赏
举报
回复
[Quote=引用 6 楼 zecard_fu 的回复:]
引用 2 楼 qqyanchong 的回复:
run结束后线程的资源不会自动全部释放,因为现在只是结束了run整个的线程还是存在的,因而要释放必须完全的删除你的线程类才可以
存在吗? 我用命令 pstree 怎么发现不存在了?
[/Quote]
恩,不存在。Qt Manual中说:
The run() implementation is for a thread what the main() entry point is for the application. All code executed in a call stack that starts in the run() function is executed by the new thread, and the thread finishes when the function returns.
zecard_fu
2010-10-09
打赏
举报
回复
[Quote=引用 2 楼 qqyanchong 的回复:]
run结束后线程的资源不会自动全部释放,因为现在只是结束了run整个的线程还是存在的,因而要释放必须完全的删除你的线程类才可以
[/Quote]
存在吗? 我用命令 pstree 怎么发现不存在了?
khler
2010-10-02
打赏
举报
回复
不能简单的从观察系统的内存增减来判断程序是否内存泄露。
从你对fun1与fun2的描述来看,不存在内存泄漏问题,除非里面还有其他对内存的操作。
fight_flight
2010-09-30
打赏
举报
回复
[Quote=引用 2 楼 qqyanchong 的回复:]
run结束后线程的资源不会自动全部释放,因为现在只是结束了run整个的线程还是存在的,因而要释放必须完全的删除你的线程类才可以
[/Quote]
使用时new,用完后delete 吗?
是这样的,我在一个函数(fun1)中new一个线程并start它,线程运行一个socket客户端与服务端相连的代码,很快就执行完了。然后另一个函数(fun2)使其与服务端断开并delete这个线程。执行fun1时内存会相应增加,运行fun2时内存并没有相应减少。这是什么原因?
ljz0919
2010-09-30
打赏
举报
回复
发一点我自己用到的代码,看能否对你有帮助
DownProcThread::~DownProcThread()
{
mutex.lock();
abort = true;
condition.wakeOne();
mutex.unlock();
wait();
}
void DownProcThread::run()
{
forever{
// QMutexLocker locker(mutex);
mutex.lock();
//在此处理收到的报文,并发送报文。
if (abort)
return;
//emit txrxcmd(this->message());
emit begin485();
this->sleep(1);
mutex.unlock();
}
}
yanchong
2010-09-30
打赏
举报
回复
run结束后线程的资源不会自动全部释放,因为现在只是结束了run整个的线程还是存在的,因而要释放必须完全的删除你的线程类才可以
dext
2010-09-29
打赏
举报
回复
本质上还是和一般的方法一样吧。栈上的 就“返还”了,堆上的要自己释放吧。
QT
多
线程
—主界面卡死解决方案
由于耗时的操作会独占系统cpu资源 ,让界面卡死在那里,这时需要考虑多
线程
方案,将耗时的操作放在主
线程
之外的
线程
中执行。该demo通过多
线程
为主界面卡死提供一种解决方案。
Qt
入门中文资料
Qt
从入门到精通
c++
Qt
中文入门教程,从
Qt
入门到
Qt
的深入研究。
Qt
5.9 C++开发指南.pdf 及示例源码
Qt
5.9 C++开发指南.pdf 及示例源码
Qt
一去丶二三里 Blog(二)
为方便大家的学习、交流,将博客导出为pdf,有兴趣的童鞋可自行下载!
Qt
5类继承关系图
Qt
5类继承关系图,对于理清
Qt
5框架还有有点帮助的。pdf文档只有一面,缩放比例放小一点。
Qt
16,816
社区成员
26,684
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章