如何监控linux物理机的线程挂起引起服务器瘫痪

如何监控linux物理机的线程挂起引起服务器瘫痪,第1张

这个没法查看,是系统自己调用的,api函数只能设计和CPU核心的亲合性,windows上是SetThreadAffinityMask。linux上是sched_setaffinity,sched_getaffinity

pthread_join一般是主线程来调用,用来等待子线程退出,因为是等待,所以是阻塞的,一般主线程会依次join所有它创建的子线程。

pthread_exit一般是子线程调用,用来结束当前线程。

子线程可以通过pthread_exit传递一个返回值,而主线程通过pthread_join获得该返回值,从而判断该子线程的退出是正常还是异常。

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函数返回。


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

原文地址: https://outofmemory.cn/yw/8887361.html

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

发表评论

登录后才能评论

评论列表(0条)

保存