如何在两个无限循环之间交替
How to alternate between two infinite loops?
我想在两个无限循环之间交替;我怎样才能做到这一点。我的代码是这样的:
#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
如何在循环#1和循环#2之间交替?我只是在测试一个想法,在时间上(在时间上(检查/比较两个循环之间的一些结果,以便在时间线上发现一些偏差/故障。
线程:
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
例如,您可以修改该代码,使每个线程仅在某些条件为true时执行。
试试这个:
while (1) {
printf("I am in loop #1");
printf("I am in loop #2"); // Not really but let's pretend we are
}
如果你真的想要两个循环:
while (1) {
myfirstloop:
printf("I am in loop #1");
goto mysecondloop;
}
while (1) {
mysecondloop:
printf("I am in loop #2");
goto myfirstloop;
}
当然,第二个代码没有意义。但是嘿,这是两个循环!
bool move = true;
while (true) {
while (found) {
// do work
if (condition) { found = false; }
}
while (!found) {
// do work
if (condition) { found = true; }
}
}
提供的答案可以应用于非常复杂的案例,也可以应用于您提到的简单案例。
在每个内部循环中使用break语句将退出该循环并进入下一个循环。很简单。
#include <stdio.h>
int main() {
// Master loop
while (1) {
// loop # 1
while (1) {
printf("I am in loop #1");
if(something)
break;
}
// loop # 2
while (1) {
printf("I am in loop #2");
if(something)
break;
}
}
} // end of master loop
while (1)
{
while (1) {
loop1:
printf("I am in loop #1n");
goto loop2;
}
while (1) {
loop2:
printf("I am in loop #2n");
goto loop1;
}
}
但我不得不说,最好的方法是始终使用多线程
如果您的交替的意图就像读者和作者的问题。
相关文章:
- 如何在C++中从两个单独的for循环中添加两个数组
- 如何在for循环中包含两个索引值的测试条件
- 如何使用OpenMP并行这两个循环
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 嵌套在循环中的两个循环的 big-O 表示法
- 使用一个循环与两个循环
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- C++声明双链表,使用两个 for 循环双向遍历列表并打印
- 比较两个字符串后卡在无限循环中
- 如何在循环中打印两个相邻的行,同时在 c++ 中将它们都保留在一行中
- 是否可以在 for 循环中添加两个浮点数?
- 在 for 循环中更新两个变量时遇到问题C++
- SDL GPU 为什么将两个图像分成两个单独的循环更快?
- 当数组位于两个循环之间时,您可以调用数组的 void 函数吗?
- 使用两个 for 循环生成以下星号
- 具有两个cin的无限循环
- 循环两个不同长度的向量时的优化
- 使用两个线程运行和中断一个无限循环
- 两个线程进入无限循环
- 如何在两个无限循环之间交替