gpt4 book ai didi

c++ - POSIX - pthread_kill()?

转载 作者:行者123 更新时间:2023-11-28 02:51:28 40 4
gpt4 key购买 nike

为什么这个线程在我杀了它之后还继续执行??

pthread_t pid;
pthread_create(&pid, NULL, (func)countdown, NULL);
pthread_kill(pid, 1);
pthread_join(pid, NULL);

最佳答案

pthread_kill 是一个向线程发送信号的函数。你目前正在向它发送信号 1 ,即 SIGHUP .请求或强制终止的标准信号是 SIGTERMSIGKILL , 这是 159分别。

此外,您应该使用常量而不是魔数(Magic Number)来发送信号。这些在 signal.h 中定义. signal documentation将为您提供更多详细信息。

更新:Per nos 的评论,终止线程(而不是整个应用程序)的正确方法是使用 pthread_cancel . pthread_kill的用法假设接收线程没有注册信号处理程序,我上面描述的往往会终止整个进程。

关于c++ - POSIX - pthread_kill()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22947430/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com