小编Man*_*dar的帖子

使用pthread_cancel取消线程:良好做法或不好

我在Linux(CentOS 5.3)上有一个C++程序,它产生多个线程,这些线程处于无限循环中以执行作业并在某些时间内休眠.现在我必须取消正在运行的线程以防新的配置通知进入并重新启动新的线程集,我已经使用了pthread_cancel.我观察到的是,即使在接收到取消指示后,线程也没有停止,甚至在睡眠完成后一些睡眠线程也会出现.

由于不需要这种行为,在上述场景中使用pthread_cancel会引发关于好坏练习的问题.

请评论上述场景中的pthread_cancel用法.

c++ linux pthreads

26
推荐指数
2
解决办法
3万
查看次数

exit()无法终止进程吗?

我在我的程序中注册了一个信号处理程序.收到不需要的信号(SIGABRT)后,我在信号处理程序中调用'exit(-1)'退出进程.但正如在几个ocassions中注意到的那样,它调用exit()但是无法终止进程.

该问题是随机生成的,我强烈怀疑执行exit().

是否存在exit()无法终止进程的任何原因或情况.

谢谢.

c linux process exit

11
推荐指数
1
解决办法
5874
查看次数

中止信号的一般原因是什么?

我有一个应用程序,在C++中运行linux,在退出时获取中止信号.在我寻找代码来寻找问题之前,我需要知道在什么情况下我将从内核获得中止信号.这可以给我正确的调试方向.

请提及应用程序可能获得中止信号的每个可能情况.

@具体执行方案是,

  • 进程处于退出模式,即调用exit()例程以正常关闭进程.
  • 因此调用所有全局对象析构函数.

TIA

linux signals abort

5
推荐指数
1
解决办法
9090
查看次数

SIGKILL不起作用的情况

是否有任何情况下,在linux上运行的应用程序(未阻止信号SIGKILL)在发出SIGKILL信号时不会被杀死?

linux signals

4
推荐指数
3
解决办法
4588
查看次数

exit()vs _exit():调用_exit()是否确保关闭所有打开的fd和套接字?

我已经习惯exit()了终止这个过程.我没有注册任何退出处理程序也不关心退出时刷新缓冲区,所以想到使用_exit()更强大的方法来终止进程.

唯一的问题是,是否能正常_exit()处理所有打开文件描述符和打开套接字的关闭?

c linux exit

2
推荐指数
1
解决办法
1585
查看次数

标签 统计

linux ×5

c ×2

exit ×2

signals ×2

abort ×1

c++ ×1

process ×1

pthreads ×1