gpt4 book ai didi

c++ - 如何在linux中重复一个进程(或设置一段进程)?

转载 作者:太空宇宙 更新时间:2023-11-04 05:30:24 25 4
gpt4 key购买 nike

我有一个进程需要在 1 毫秒后重复执行某些操作。如何在 Linux 上设置进程的周期?

我在 Intel i7 -2600 CPU(总共 8 核)@ 3.40 Ghz 上使用 Linux 3.2.0-4-rt-amd64(带有 RT-Preempt 补丁)。基本上我在代码中显示的 while 循环中有大约 6 个线程,我希望线程每 1 毫秒执行一次。最后我想测量每个线程的延迟。

那么如何设置周期1ms呢?

例如,在下面的代码中,如何每 1ms 重复一次 Task1?

while(1){

//Task1(having threads)

}

谢谢。

最佳答案

在 while 循环内调用 usleep(1000) 即可完成这项工作,即:

while (1) {
// Task1
usleep(1000); // 1000 microseconds = 1 millisecond
}

编辑

由于 usleep() 已被弃用,取而代之的是 nanosleep(),因此我们使用后者:

struct timespec timer;
timer.tv_sec = 0;
timer.tv_nsec = 1000000L;

while (1) {
// Task1
nanosleep(&timer, NULL);
}

关于c++ - 如何在linux中重复一个进程(或设置一段进程)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887247/

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