【问题标题】:Java - How to access static synchronized method from another Thread?Java - 如何从另一个线程访问静态同步方法?
【发布时间】:2013-09-06 17:12:01
【问题描述】:

我正在使用一个提供static synchronized 方法的API,我需要从另一个线程调用它。 总是当我从另一个线程调用它时,它会抛出一个带有类似消息的异常

Can't access this method from another thread!

我尝试将方法调用放入synchronized 块中。但是由于它是一个静态方法 没有任何东西可以放入静态块中。

那么如何从另一个线程访问静态同步方法?

更新:我正在编写一个 Bukkit 插件(我的世界),API 被称为 TagAPI

【问题讨论】:

  • 这似乎是一个特定于 API 的异常。你必须告诉我们更多关于它的信息。
  • 我正在用 Bukkit 编写一个 Minecraft 插件。我使用的 API 称为 TagAPI
  • 希望你使用的是 Class.methodName
  • 如果它是一个库并且一切都来自您的代码(没有库分隔的线程等),您需要获取与哪个方法关联(调用)的线程,所以这并不难,只是保持依赖线程处于活动状态并使用它调用方法。这个example 会有所帮助

标签: java multithreading static synchronized bukkit


【解决方案1】:

如果the library checks that you are calling the method from a specific thread,那么很可能有充分的理由,因此您不应该这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 2012-11-15
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多