如何使pthread在C中总共浪费1秒的cpu时间?

如何使pthread在C中总共浪费1秒的cpu时间?,c,pthreads,C,Pthreads,所以我有一个任务,比较分配资源的算法。我已经实现了这些算法,它们工作得很好。我的问题是模拟在这些资源上所做的工作 起初,我以为只要睡一会儿就可以了。然而,这实际上并没有浪费CPU时间。所有资源可以同时进入睡眠状态,3秒钟的模拟工作将在1秒内完成…这是不可能的 如何使线程保持活动状态,并且只有在CPU中总共花费1秒后,它才能继续并执行其他操作?函数pthread\u getcpuclockid(3)由POSIX强制执行。它的(Linux)手册页面包含一个简短的示例,给出了线程使用的CPU时间。在循

所以我有一个任务,比较分配资源的算法。我已经实现了这些算法,它们工作得很好。我的问题是模拟在这些资源上所做的工作

起初,我以为只要睡一会儿就可以了。然而,这实际上并没有浪费CPU时间。所有资源可以同时进入睡眠状态,3秒钟的模拟工作将在1秒内完成…这是不可能的


如何使线程保持活动状态,并且只有在CPU中总共花费1秒后,它才能继续并执行其他操作?

函数
pthread\u getcpuclockid(3)
由POSIX强制执行。它的(Linux)手册页面包含一个简短的示例,给出了线程使用的CPU时间。在循环中运行,直到浪费了足够的时间,在检查之间循环做一些拇指旋转。

当然,你需要一个循环。您还需要当前时间。您需要比较循环之前的时间和当前时间。其余的应该很容易弄清楚。我考虑过,但它不起作用,因为我有未知数量的线程。当然是1秒,但不是1秒。你可以得到实时时间,而不仅仅是CPU时间。哦,等等,你确实想要CPU时间,对不起。是的。这个想法是为了计算分配算法的效率,所以我试图在分配资源时模拟CPU中的一些假装工作。通过这种方式,我可以在比较算法时比较实际完成的工作量。