概述在Linux上调整Java中的上下文切换频率
我正在研究一些二进制Java代码中的潜在并发问题。 代码有时有一个奇怪的行为,但我不确定是否实际上是由于代码本身的并发问题,或者如果是其他东西。 我一直无法重现自己的奇怪行为,但只能看到它发生在我们的日志文件。
有没有办法提高JVM的上下文切换频率,以便以更高的概率来Expression潜在的并发问题? 最好不要在代码中明确插入对Thread :: yeild或Thread :: sleep的调用。
WinDbg中止点击button
如何重新命名从$ 1命名GDB的内部variables?
GDB在eclipse中不显示一些值
如何研究与“冻结”窗口系统问题
Eclipse远程deBUGging无法连接到X服务器
我认为Thread-weaver测试框架可以帮助你。 我已经尝试过了一段时间,但它确实可以让你强制一个特定的时间表。 它也可以在一种默认模式下运行,在这种模式下两种方法之间的很多交错被测试。
这是一个简单的示例测试(使用默认的交错)
public class MyListTest { private MyList<String> List; @Test public voID testThreading() { AnnotatedTestRunner runner = new AnnotatedTestRunner(); // Run all weaver tests in this class,using MyList as the Class Under Test. runner.runTests(this.getClass(),MyList.class); } @ThreadedBefore public voID before() { List = new MyList<>(); } @ThreadedMain public voID mainThread() { List.putIfAbsent(\”A\”); } @ThreadedSecondary public voID secondThread() { List.putIfAbsent(\”A\”); } @ThreadedAfter public voID after() { assertthat(List).hasSize(1); } }
总结
以上是内存溢出为你收集整理的在Linux上调整Java中的上下文切换频率全部内容,希望文章能够帮你解决在Linux上调整Java中的上下文切换频率所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容