如何在两个无限循环之间交替?

Sha*_*han -4 c c++ infinite-loop while-loop

我想在两个无限循环之间交替; 我该怎么做到这一点.我的代码是这样的:

#include <stdio.h>

int main() {
    // Master loop
    while (1)

    // loop # 1
    while (1) {
        printf("I am in loop #1");
    }

    // loop # 2
    while (1) {
        printf("I am in loop #2");
    }
} // end of master loop
Run Code Online (Sandbox Code Playgroud)

如何在循环#1和循环#2之间切换?我只是测试一个想法来检查/比较两个循环时间(时间)之间的一些结果,以便在时间线中找到一些偏差/错误.

Set*_*gie 6

主题:

std::thread t1([]() { while(true) printf("I am in loop #1"); }),
            t2([]() { while(true) printf("I am in loop #2"); });

t1.join();
t2.join(); // only necessary if t1 is not really an infinite loop
Run Code Online (Sandbox Code Playgroud)

例如,您可以修改该代码以使每个线程仅在某些条件为真时执行.

  • 有关更完整的示例,包括两个线程之间的简单通信以及停止的可行性.请查看此处的示例:http://en.cppreference.com/w/cpp/thread/condition_variable (3认同)