QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1446|回复: 7

怎么让一个线程退出?

[复制链接]
发表于 2004-3-11 20:16:14 | 显示全部楼层 |阅读模式
比如一个线程在做循环.一个线程在显示一些信息,我在显示信息的线程中让另一个线程退出???应该怎么做啊
发表于 2004-3-11 20:22:12 | 显示全部楼层
伪码 here:
[code:1]
while (isRunning) {
    // do something here...
}

...

public void setIsRunning(boolean _isRunning) {
    isRunning = _isRunning;
}
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-3-11 20:35:34 | 显示全部楼层
[quote:e7dd399c08="Cure"]伪码 here:
[code:1]
while (isRunning) {
    // do something here...
}

...

public void setIsRunning(boolean _isRunning) {
    isRunning = _isRunning;
}
[/code:1][/quote]


好象也只有这种方面了,用一个全局变量....我以为有专门的退出函数....
回复

使用道具 举报

发表于 2004-3-11 20:59:39 | 显示全部楼层
[quote:1523bfd1de="西奈"][quote:1523bfd1de="Cure"]伪码 here:
[code:1]
while (isRunning) {
    // do something here...
}

...

public void setIsRunning(boolean _isRunning) {
    isRunning = _isRunning;
}
[/code:1][/quote]


好象也只有这种方面了,用一个全局变量....我以为有专门的退出函数....[/quote]

在 java 里可以不需要 "全局变量" (呵呵, 也是 java 不推荐做的), 把 isRunning 定义到这个线程类里成为一个成员变量就可以.
回复

使用道具 举报

发表于 2004-3-12 17:36:25 | 显示全部楼层
你可以用条件变量呀
比如:pthread_cond_t cond;
         pthread_cond_t mutex;


         pthread_mutex_lock();
         pthread_cond_wait();
关于这两个函数,你可以研究一下!
不太难
这是有条件的退出。
如果想强行使另一线程退出,可以用pthread_kill(thread_id);
回复

使用道具 举报

发表于 2004-3-12 17:41:41 | 显示全部楼层
还可以用pthread_exit()
如果不是分离的,可以用pthread_join(),是分离的就不用管它了。
回复

使用道具 举报

发表于 2004-3-13 14:12:32 | 显示全部楼层
发信号9
回复

使用道具 举报

发表于 2004-3-13 14:59:15 | 显示全部楼层
或者按reset键
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 20:00 , Processed in 0.043886 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表