gpt4 book ai didi

Java:测试线程访问 "not thread-safe"方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:22:05 25 4
gpt4 key购买 nike

我在 Swing Java 应用程序中解决线程问题的策略是将方法分为三种类型:

  1. 应该由 GUI 线程访问的方法。这些方法不应该阻塞并且可以调用 swing 方法。不是线程安全的。
  2. 应由非 GUI 线程访问的方法。基本上这适用于所有(潜在的)阻塞操作,例如磁盘、数据库和网络访问。他们不应该调用 swing 方法。不是线程安全的。
  3. 两者都可以访问的方法。这些方法必须是线程安全的(例如同步的)

我认为这对于通常只有两个线程的 GUI 应用程序来说是一种有效的方法。解决问题确实有助于减少竞争条件的“表面积”。当然,需要注意的是,您绝不会不小心从错误的线程中调用方法。

我的问题是关于测试的:

是否有测试工具可以帮助我检查是否从正确的线程调用了方法?我知道 SwingUtilities.isEventDispatchThread(),但我确实在寻找使用 Java 注释或面向方面编程的东西,这样我就不必在每个方法中插入相同的样板代码程序。

最佳答案

Here是一个博客条目,其中包含一些用于检查 EDT 违规的解决方案。一个是自定义重绘管理器,还有一个 AspectJ 解决方案。我过去使用过重绘管理器,发现它非常有用。

关于Java:测试线程访问 "not thread-safe"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1378326/

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