我的应用程序中有几个线程在后台工作。它们连接到数据库并执行一些耗时的选择查询。在大多数情况下,这些查询只返回几条记录。然而,他们有时会返回数以万计的记录。然后所有这些都在一个循环中处理。
因为这种情况可能同时发生在多个线程中,所以我不希望我的应用程序在这些线程处理数据时使用 100% 的 CPU 时间;我也不想让所有线程争夺处理器的时间。因此,我在这些线程的循环的每次迭代中调用 Sleep() 函数。
但是,我不知道如何调整睡眠时间。我不希望循环永远持续下去,所以睡眠时间不能太长。我在每次迭代中(在每个线程中)将其设置为 2 毫秒(为什么是 2 毫秒?-这是一个好问题 :))。
另一方面,我认为我可以延长睡眠时间,但每 n 次迭代只调用一次 sleep (比如说,每 50 次迭代 Sleep(100) )。我应该选择哪种方法?循环的一次迭代每次大约需要 30 毫秒(没有任何睡眠)。
请指教。
谢谢!
马吕斯。