gpt4 book ai didi

c - 在 c 中暂停 posix 线程特定时间间隔的问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:39 26 4
gpt4 key购买 nike

我必须在单独的线程(我使用的是 posix 线程)中调用一个方法,它每 5 秒更新一些值,为此编写了下面的代码。

void *threadEntry(void *)
{
while(1)
{
updateValue();//to update some values
usleep(5000000);//pause for 5 second
}
}
pthread_t thread1;
pthread_create(&thread1,NULL,threadEntry,NULL);

但是这个线程在 4-5 分钟后出现段错误。可能是什么原因?有没有其他方法可以暂停 posix 线程。(我使用的是 linux)

最佳答案

在 POSIX 系统(linux 是)上,nanosleep 是这种 sleep 的正确选择:

int nanosleep(const struct timespec *req, struct timespec *rem);

其中 req 是您的请求,而 rem 是您的线程过早中断时剩余的休眠时间。

关于c - 在 c 中暂停 posix 线程特定时间间隔的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3529337/

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