代码之家  ›  专栏  ›  技术社区  ›  My Other Me

什么是引发线程问题的好方法

  •  2
  • My Other Me  · 技术社区  · 15 年前

    我正在完成对一个多线程应用程序的测试,这个应用程序似乎工作得很好,直到我把它放在很重的负载下,然后对它运行的机器施加压力。然后,我开始看到一些我没有预见到的奇怪的边缘情况会产生一些意想不到的/不可预见的情况。我强调机器的方式是在一个非常大的sqlite数据库上运行一个真空。有没有其他好的方法来引发这种高负荷的情况?

    4 回复  |  直到 15 年前
        1
  •  1
  •   Ed Power    15 年前

    你指的是什么压力?内存、CPU、全线程池还是文件I/O?

    我会写一个简单的应用程序,它有一个消耗内存的线程,一个消耗CPU周期的线程,一个绑定线程池的线程,以及一个刷新磁盘的线程。在它上面挂一个用户界面来控制每根线的食欲,并调整“旋钮”来用你的应用程序按喇叭。

        2
  •  2
  •   Matthias    15 年前

    你可以使用 CHESS .

        3
  •  1
  •   Community CDub    7 年前
        4
  •  1
  •   Hans Passant    15 年前

    由于锁定不当导致的线程问题往往会在重载下显示出来,因为时间会发生变化。问题的产生并不是因为负载太重,而是由于随机调度延迟而改变了时间。通过在线程的执行中引入随机延迟,您可以在不重载的情况下重新处理问题。这是国际象棋使用的方法。