十次Thread.Sleep(100)或一次Thread.Seep(1000)

本文关键字:Thread 一次 Seep 1000 十次 Sleep | 更新日期: 2023-09-27 18:20:36

之间是否存在差异(从性能角度来看)

Thread.Sleep(10000);

for(int i=0; i<100; i++)
{
   Thread.Sleep(100);
}

Thread.Sleep(10000)的单个调用是否也会在这10秒内导致上下文切换(这样操作系统就可以看到它是否已经休眠),还是这个线程真的在10秒内没有得到服务?

十次Thread.Sleep(100)或一次Thread.Seep(1000)

第二个代码(用于循环)需要更多的进程交换,并且应该比Thread.Sleep(10000); 慢一点

无论如何,您可以使用System.Diagnostics.Stopwatch类来确定这两种方法的确切时间。我相信差别会非常非常小。

在任何情况下,由于的以下开销,第二个循环都需要时间

  1. 10个不同线程对象的内存利用率
  2. 一旦调用thread.sleep,将启动10个不同的回调
  3. 运行环路的间接费用
  4. 如果我们想在单线程上运行代码,那么如果我们甚至没有任何断点,为什么要循环呢