gpt4 book ai didi

multithreading - 我如何让 sbt 在子项目 specs2 运行中使用正确的类加载器?

转载 作者:行者123 更新时间:2023-12-02 03:06:02 24 4
gpt4 key购买 nike

我在使用类加载器和 specs2 3.8.7+ 时遇到了一些问题。因为类加载器似乎由 sbt 管理,我在这里专门询问 sbt 的行为。

我已经在 Github 上发布了一个示例项目来演示手头的问题 Shadowfiend/specs2-concurrent-boom-boom .据观察,问题是如果我运行 all project1/test project2/test,project2 最终可以使用线程上下文类加载器这是一个引用 project1 而不是 project2 的 ClasspathFilter,反之亦然。在某些情况下,项目 1 的工作人员将引用项目 2 的 ClasspathFilter 和项目 2 的工作人员将同时引用项目 1 的 ClasspathFilter

我在几个地方插入了一些断点,看到只有一个 ForkJoinPool实际上是为 specs2 生成的,即使在运行 all project1/test project2/test 时也是如此,即使有 fork := true。不能 100% 确定该池中的所有线程是否都会依次结束使用相同的类加载器父类或什么,但它似乎可能是问题的根源?

我在这里有点超出了我的深度,但我将不胜感激任何关于sbt 中的类加载器和测试框架之间的预期交互产生通过 sbt.

最佳答案

这在 Specs2 4.0.1 中已修复。

关于multithreading - 我如何让 sbt 在子项目 specs2 运行中使用正确的类加载器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42809058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com