我正在研究(虚拟)竞争自动化的俄罗斯方块播放器。
由于游戏很有竞争力,我自然会喜欢我的俄罗斯方块播放器同时按下尽可能多的键。我提出的解决方案是为每种按键设置一个线程(这样,如果两个相同的密钥被发送,则存在延迟,因为它们在同一个线程上。但是如果两个单独的密钥被发送,它们的线程也分别执行,导致同时按下两个键。)
但是由于多线程,我担心java.awt.Robot不是Thread安全的(并且googles / SO搜索没有关于该主题的信息)。我想避免在我正在使用的Robot对象上创建锁定 - 如果我这样做,整个系统变得毫无意义(因为那时不会有多个按键同时出现,每个都会紧接着另一个)
一种可能性是可能同时使用多个机器人(每个线程一个),但我不确定它们不会简单地相互冲突。
那么,如何在多线程环境中处理Robot对象,以便可以同时执行多个动作?