Java – как получить доступ к статическому синхронизированному методу из другого потока?

Я использую API, который предоставляет метод static synchronized, и мне нужно вызвать его из другого потока. Всегда, когда я вызываю его из другого потока, он выдает исключение с таким сообщением

Can't access this method from another thread!

Я попытался поместить вызов метода в блок synchronized. Но поскольку это статический метод, в статический блок нечего помещать.

Итак, как я могу получить доступ к статическому синхронизированному методу из другого потока?

ОБНОВЛЕНИЕ: я пишу плагин Bukkit (Minecraft), и API называется TagAPI.


person MinecraftShamrock    schedule 06.09.2013    source источник
comment
Это похоже на конкретное исключение API. Вы должны будете рассказать нам больше об этом.   -  person Sotirios Delimanolis    schedule 06.09.2013
comment
Я пишу плагин Minecraft с помощью Bukkit. И API, который я использую, называется TagAPI.   -  person MinecraftShamrock    schedule 06.09.2013
comment
Надеюсь, вы используете Class.methodName   -  person Sachin Thapa    schedule 07.09.2013
comment
вам нужно получить Thread, с которым связан метод (вызванный), если это библиотека, и все идет из вашего кода (без потока, разделенного lib, и т. д.), так что это не тяжелая работа, просто оставьте зависимый поток живым и вызовите метод с ним. этот пример поможет   -  person    schedule 08.09.2013


Ответы (1)


Если библиотека проверяет, вызов метода из определенного потока, то, скорее всего, на то есть веская причина, и поэтому не стоит этого делать.

person Thomas Mueller    schedule 06.09.2013