社区
C++ Builder
帖子详情
线程执行到一半,怎么退出?
yydelphi
2006-10-23 03:13:37
void __fastcall MyThread::Execute()
{
//....
while ( !Terminate )
{
func1();
}//end of while()
}
void fuc1()
{
//do sth
//执行到这里,想结束线程,怎么弄?
}
...全文
276
6
打赏
收藏
线程执行到一半,怎么退出?
void __fastcall MyThread::Execute() { //.... while ( !Terminate ) { func1(); }//end of while() } void fuc1() { //do sth //执行到这里,想结束线程,怎么弄? }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
do2008
2006-10-23
打赏
举报
回复
unsigned(僵哥) 的方法,偶还真没有用过,学习`~~~
偶一般是检查一个flag,然后退出execute函数
僵哥
2006-10-23
打赏
举报
回复
最好的办法是让你的线程有WM_QUIT消息的处理,然后由于线程调用的过程虽然可能没有该线程的对象,但是却是在同一线程当中执行,所以可以使用
PostThreadMessage(GetCurrentThreadId(),WM_QUIT,0,0);
然后再让当前函数立即用return 返回.
jaffy
2006-10-23
打赏
举报
回复
老大,有个TERMINATED的属性可以在线城类中直接赋值的
然后注意你WHILE的条件TERMINATED = false
如果为TURE就退出循环了
yydelphi
2006-10-23
打赏
举报
回复
当然可以在Mythread中定义个flag, 在while循环中检查这个flag,在func1()中想退出时置这个flag.
有没有thread这个类本身的方法可以用?
jaffy
2006-10-23
打赏
举报
回复
为什么不能退出WHILE循环,或者设个标志位直接RETURN或者直接调用TERMINATE方法
yydelphi
2006-10-23
打赏
举报
回复
或者 //执行到这里,想退出while()循环
我直接 pthread->Terminate = true; 不行.
因为退出while()循环后还要做其他事情
Java多
线程
执行
到
一半
自动停止原因(不能使用Junit测试)
Java多
线程
执行
到
一半
自动停止原因(不能使用Junit测试)
线程
池中多余的
线程
是如何回收的?
一开始是 4 个工作
线程
,当任务把任务队列塞满,就得将工作
线程
增加到 8. 当后面任务
执行
到差不多了,
线程
取不到任务了,就会回收到 4 个工作
线程
的状态(取决于 allowCoreThreadTimeOut 的值,这里讨论默认值 false 的情况,即核心
线程
不会超时。也就是说,
线程
不再是中断状态了,这样在再次取任务时,就不会报错了。发出中断信号的时候,工作
线程
要么在 getTask()里准备获取任务,要么在
执行
任务,那就得等它
执行
完当前任务才会发出,因为工作
线程
在
执行
任务的时候,也会工作
线程
加锁。
Java runnable停止
线程
_
线程
有多少种状态?Runnable 一定在
执行
任务吗?
线程
有哪 6 种状态?人有生老病死。同样的,
线程
有自己的生命周期。在 Java 中
线程
的生命周期中一共有 6 种状态:New(新创建)Runnable(可运行)Blocked(被阻塞)Waiting(等待)Timed Waiting(计时等待)Terminated(被终止)查看 Thread 类的源码时,内部还定义了这样一个枚举类。这个枚举类定义的就是
线程
的状态,源码如下:public enum ...
关于
线程
(三)
线程
控制
最近接手一个新项目,有点小忙。
线程
写了
一半
还要重新缕缕思路! 这次说点
线程
重要的东西吧,
线程
的控制。 Java自动调度没有逻辑约束的
线程
时,其
执行
顺序是没有保障的。但是可以通过编程调用一些调度
线程
的方法,来实现一定程度上对
线程
的调度。但要注意的是,这些调度
线程
的方法,有些是有保障的,有些只是影响
线程
进入
执行
状态的几率。 一、睡眠 在
线程
执行
的过程中,调用sleep方法可以让
线程
睡眠一段指定
原理解析:
线程
池中多余的
线程
是如何回收的?
点击关注公众号,实用技术文章及时了解最近阅读了JDK
线程
池ThreadPoolExecutor的源码,对
线程
池
执行
任务的流程有了大体了解,实际上这个流程也十分通俗易懂,就不再赘述了,别人写的比我好多了。不过,我倒是对
线程
池是如何回收工作
线程
比较感兴趣,所以简单分析了一下,加深对
线程
池的理解吧。那么,就以JDK1.8为例分析吧。1. runWorker(Worker w)工作
线程
启动后,就进入run...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章