linux下的c++如何判断线程是否结束

linux下的c++如何判断线程是否结束,第1张

执行完成后隐式退出

线程本身显示调用pthread_exit 函数退出;pthread_exit (void * retval)

被其他线程用pthread_cance函数终止:pthread_cance (pthread_t thread)

解决办法:

// 创建线程前设置 PTHREAD_CREATE_DETACHED 属性

pthread_attr_t attr

pthread_t thread

pthread_attr_init (&attr)

pthread_attr_setdetachstat(&attr, PTHREAD_CREATE_DETACHED)

pthread_create (&thread, &attr, &thread_function, NULL)

pthread_attr_destroy (&attr)

当线程为joinable时,使用pthread_join来获取线程返回值,并释放资源。

当线程为joinable时,也可在线程中调用 pthread_detach(pthread_self())

Linux线程的几种结束方式

Linux创建线程使用

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,

void *(*start_routine)(void *), void *arg)

1

2

Linux线程的几种结束方式:

调用pthread_exit(exit_code),exit_code为线程退出的状态代码。同一进程下的其他线程可以通过pthread_join(exit_code)来使用。

函数start_routine使用return返回,与调用pthread_exit()作用相同。

线程被取消pthread_cancel()。

同一进程中的其他线程调用了exit(),,或者主线程从main函数返回。

这个线程可以用ps命令查看到吗?如果可以的话,假如你的登陆的时候用户名是orange,线程名字是chrome,

用$ ps -u orange|grep chrome|wc -l 就可以统计出有几个程序名含有 chrome 的程序在运行了。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8733884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存