这是关于在C++中使用线程报告计算进度的后续问题。
假设我有一个
但是这种方法的主要问题在于执行
我在这个网站上发现了相当丰富的关于面向对象多线程的文献(我并不真正熟悉),适用于各种编程语言,但我发现在C风格中做到这一点的问题似乎已经过时了。有没有平台无关的C11方式来实现我想要的?如果没有,那么我会对在unix和gcc中工作的方法感兴趣。
注意:我不希望并行运行各种实例的
假设我有一个
for
循环,执行多次run_difficult_task()
,我想推断出循环已经进行到哪里。我以前会这样写:int i;
for (i=0; i < 10000; ++i) {
run_difficult_task(i);
if (i % 100 == 0) {
printf("i = %d\n", i);
}
}
但是这种方法的主要问题在于执行
run_difficult_task()
可能会真正地永远运行下去(被卡在无限循环中等等),因此我希望每隔k
秒获得进度报告,通过打印出循环变量i
的值来实现。我在这个网站上发现了相当丰富的关于面向对象多线程的文献(我并不真正熟悉),适用于各种编程语言,但我发现在C风格中做到这一点的问题似乎已经过时了。有没有平台无关的C11方式来实现我想要的?如果没有,那么我会对在unix和gcc中工作的方法感兴趣。
注意:我不希望并行运行各种实例的
run_difficult_task
(例如OpenMP),而是希望同时运行for
循环和报告机制。
相关文章: C语言如何进行"多线程"编程 和 如何在纯C语言中启动线程?