社区
Delphi
帖子详情
如何在线程执行完之后,释放资源
iwillgo2
2003-08-15 12:09:38
如何在线程执行完之后,释放资源,我如何判断一个线程执行完毕?
...全文
247
7
打赏
收藏
如何在线程执行完之后,释放资源
如何在线程执行完之后,释放资源,我如何判断一个线程执行完毕?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iwillgo2
2003-08-18
打赏
举报
回复
to hiflower(花):
to zhoutian618(周天):
我这样测试线程是否被释放
procedure TF_Thread.Button2Click(Sender: TObject);
begin
if NewThread=nil then
caption:='nil'
else
caption:='no nil';
end;
但总是显示caption:='no nil';
是不是证明线程资源没有被释放
hiflower
2003-08-16
打赏
举报
回复
procedure TYourThread.Execute;
begin
//这里是你的代码
Terminate;//终止线程执行
Free;//释放自己
end;
也可以在主程序中释放线程资源
var YourThread:TYourThread;
procedure TForm1.FormCreate(..);
begin
...
YourThread.OnTerminate:=YourThreadTerminate;
...
end;
procedure TForm1.YourThreadTerminate(..);
begin
YourThread.Free;
end;
zhoutian618
2003-08-15
打赏
举报
回复
OnTerminate事件啊。
执行完成成后会调用的。
zhoutian618
2003-08-15
打赏
举报
回复
也可以写在ONT事件里面啊。
比如:
线程:=nil
procedure TP.OnT(Sender: TObject);
begin
线程:=nil
end;
//还要设置如下:
FreeOnTerminate:=True;
procedure TP.Execute;
begin
OnTerminate:=OnT;//!!!!!!!!!!!!!!!
FreeOnTerminate:=True;
//以下开始你的代码
end;
iwillgo2
2003-08-15
打赏
举报
回复
To zhoutian618(周天):
我不是这个意思,你说的是释放线程内部的资源,我的意思是,生成一个线程,等它执行完成之后,释放线程本身,也就是说 线程:=nil;
zhoutian618
2003-08-15
打赏
举报
回复
type
TP = class(TThread)
private
procedue OnT(Sender: TObject);
protected
procedue Execute; override;
end;
impl....
procedure TP.OnT(Sender: TObject);
begin
//释放资源
end;
procedure TP.Execute;
begin
OnTerminate:=OnT;//!!!!!!!!!!!!!!!
//以下开始你的代码
end;
hiflower
2003-08-15
打赏
举报
回复
同上
python
线程
进程、异步IO
多
线程
是指从软件或者硬件上实现多个
线程
并发
执行
的技术。具有多
线程
能力的计算机因有硬件支持而能够在同一时间
执行
多于一个
线程
,进而提升整体处理性能。 该章节主要包括
线程
进程的概念,基于python的
线程
进程实现,GIL锁的影响,消费者生产者模型,进程池的应用以及IO模型的介绍,一句话概括本章的内容就是:实现并发编程,即计算机能够同时处理多个任务。
线程
结束
资源
释放
线程
创建时,系统会分配给
线程
一些
资源
,我们可以看到的就是
线程
描述符,
线程
堆栈,在系统内部还会有更复杂的系统维护一些信息,在
线程
创建时,内核总会为其维护一些
资源
,比较理想的情况是
线程
运行结束后,
释放
系统
资源
和进程
资源
,包含
线程
返回值占用的内存,
线程
堆栈,寄存器状态等等,以备后来者的使用.
线程
执行
结束后
释放
资源
的三种方法: 利用这些方法,我们可以避免
线程
退出时,系
python
线程
执行
完
后
释放
内存_
线程
结束后
释放
内存
我正在开发的应用程序主要是API,但也有一个多
线程
后台作业处理系统,用于
执行
计划的作业以及临时API,它们需要很长时间才能获得即时的API响应。这将通过金枪鱼分叉10次。任何单个分叉的流程都能够接管要运行的作业,因此,在处理流程与API请求的服务之间,是平衡的。我面临的挑战是,每个进程将如何继续声明作业处理所需的最大内存量。有些作业需要1.5GB-2GB的内存。如果有足够的时间,最终所有10个进程...
java
释放
线程
资源
_Java
线程
之
释放
锁,
释放
资源
,
释放
CPU
多
线程
中的wait与sleep到底谁
释放
了锁首先,多
线程
中会使用到两个延迟的函数,wait和sleep。wait是Object类中的方法,而sleep是Thread类中的方法。sleep是Thread类中的静态方法。无论是在a
线程
中调用b的sleep方法,还是b
线程
中调用a的sleep方法,谁调用,谁睡觉。最主要的是sleep方法调用
之后
,并没有
释放
锁。使得
线程
仍然可以同步控制。sleep不会让出...
线程
资源
是否
释放
的问题
关于
线程
退出和
线程
资源
回收的有关问题
线程
退出有多种方式,如return,pthread_exit,pthread_cancel等;
线程
分为可结合的(joinable)和 分离的(detached)两种,如果没有在创建
线程
时设置
线程
的属性为PTHREAD_CREATE_DETACHED,则
线程
默认是可结合的。可结合的
线程
在
线程
退出后不会立即
释放
资源
,必须要调用pthread_join来显式的结束
线程
。分离的
线程
在
线程
退出时系统会自动回收
资源
。 一、设置分离
线程
的几种方法: 1.在创建
线程
时加上 pthrea
Delphi
5,392
社区成员
262,732
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章