Java jCaptcha线程安全吗?

Java jCaptcha线程安全吗?,java,synchronization,storage,captcha,Java,Synchronization,Storage,Captcha,我在一个项目中使用JCaptcha,需要一个不直接可用的行为。因此,我查看了源代码,看看是否可以扩展它以获得所需的内容,并发现我使用()的存储实现使用HashMap作为存储。。。没有同步 我知道JCaptcha在集群环境中不起作用,这不是我的情况,但是多个客户机同时工作如何?商店实现是外部同步的,还是我应该自己滚动并确保它正确同步 蒂亚 我认为这是因为它被设计为与总是有多个客户端的web应用程序集成。这也是一个验证码框架,所以他们必须用人类和计算机客户端进行测试 但是,我仍然建议测试它在多线程环

我在一个项目中使用JCaptcha,需要一个不直接可用的行为。因此,我查看了源代码,看看是否可以扩展它以获得所需的内容,并发现我使用()的存储实现使用HashMap作为存储。。。没有同步

我知道JCaptcha在集群环境中不起作用,这不是我的情况,但是多个客户机同时工作如何?商店实现是外部同步的,还是我应该自己滚动并确保它正确同步


蒂亚

我认为这是因为它被设计为与总是有多个客户端的web应用程序集成。这也是一个验证码框架,所以他们必须用人类和计算机客户端进行测试


但是,我仍然建议测试它在多线程环境中的行为是否正确。

从MapCaptchaStore的读取源判断,该类不是线程安全的。不过,我不是100%愿意支持这个答案,因为同步可能会在更高的级别上发生(例如,对MapCaptchaStore的单个实例的所有访问可能会在另一个对象上同步)


您可以使用CaptchaStore的另一个实现。例如,验证码存储的基本hashmap实现没有同步,这可能会导致一些奇怪的行为。
其他存储是线程安全的,对于简单的实现,请使用FastHashMapCaptchaStore。

“测试它在多线程环境中的行为是否正确”是测试中尚未解决的重大挑战之一!