有什么方法可以等待代码,直到某些变量在 C 编程(如 tcl 中的 vwait)中被重置或更改?
我们可以实现相同的示例代码:
这里使用线程,我们可以将变量 getout 设置为 1 并可以继续进行。注意:由于代码中的一些问题,我不能使用无限 while 循环来继续检查变量。同一任务是否有某种触发器?提前致谢。
#include <stdio.h>
#include <pthread.h>
int getout = 0;
void *threadfunc(void *parm)
{
int x = 0;
for (;;) {
x++;
if (x == 500000) {
getout = 1;
}
}
return NULL;
}
void main () {
pthread_t pth;
pthread_create(&pth,NULL,threadfunc,"foo");
// wait for getout to be set to 1;
pthread_cancel(pth); // cancel the thread after wait
}