当前位置:   article > 正文

C# 多线程造成CPU占用率高_c# 多线程程序内存变大

c# 多线程程序内存变大

当线程多的时候就会造成CPU内存占用率过高

  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. Thread TH1, TH2, TH3, TH4, TH5;
  4. TH1 = new Thread(Thread1)
  5. {
  6. IsBackground = true
  7. };
  8. TH2 = new Thread(Thread2)
  9. {
  10. IsBackground = true
  11. };
  12. TH3 = new Thread(Thread3)
  13. {
  14. IsBackground = true
  15. };
  16. TH4 = new Thread(Thread4)
  17. {
  18. IsBackground = true
  19. };
  20. TH5 = new Thread(Thread5)
  21. {
  22. IsBackground = true
  23. };
  24. TH1.Start();
  25. TH2.Start();
  26. TH3.Start();
  27. TH4.Start();
  28. TH5.Start();
  29. }
  30. public void Thread1()
  31. {
  32. while (true) ;
  33. }
  34. public void Thread2()
  35. {
  36. while (true) ;
  37. }
  38. public void Thread3()
  39. {
  40. while (true) ;
  41. }
  42. public void Thread4()
  43. {
  44. while (true) ;
  45. }
  46. public void Thread5()
  47. {
  48. while (true) ;
  49. }

上面这段代码,CPU的占用率高

解决方法:

只要我们上每个线程岔开时间执行即可,我们在每一段循环中增加thread.sleep(1),让线程休眠等待。

  1. public void Thread1()
  2. {
  3. while (true)
  4. Thread.Sleep(1);
  5. }
  6. public void Thread2()
  7. {
  8. while (true)
  9. Thread.Sleep(1);
  10. }
  11. public void Thread3()
  12. {
  13. while (true)
  14. Thread.Sleep(1);
  15. }
  16. public void Thread4()
  17. {
  18. while (true)
  19. Thread.Sleep(1);
  20. }
  21. public void Thread5()
  22. {
  23. while (true)
  24. Thread.Sleep(1);
  25. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/788449
推荐阅读
相关标签
  

闽ICP备14008679号