我知道这是一个旧线程,但以防万一有人在同一错误中失败。
这是您正在使用的本机库的多线程问题。
长话短说,java将本机库加载到内存中,然后由多个线程同时访问它,然后弹出此错误。
此问题的快速解决方法是将生成此错误的方法标记为
synchronized。
@kit注释后更新。
在多线程环境中无法运行此类本机库。
您的选择是:
- 修改本机库以使其具有线程安全性(如果您可以访问其代码)。
- 将其包装为应用程序并作为单独的进程运行多个副本(因为每个进程一次加载本机库)
- 将其包装为服务并运行多个副本,并使用套接字或适当的更高级别的RPC机制与其进行通信。



