3

我正在开发一个(虚拟)有竞争力的自动俄罗斯方块播放器。

由于游戏具有竞争力,我自然希望我的俄罗斯方块玩家同时按下尽可能多的键。我想出的解决方案是为每种按键分配一个线程(这样,如果发送了两个相同的键,则会有延迟,因为它们在同一个线程上。但是如果发送了两个单独的键,它们的线程也分别执行,导致同时按下两个键)。

但是由于多线程,我担心 java.awt.Robot 不是线程安全的(并且 googles/SO 搜索结果没有关于该主题的信息)。我想避免在我正在使用的 Robot 对象上创建锁——如果我这样做,整个系统将变得毫无意义(因为不会同时有多个按键,每个按键都会一个接一个地出现) .

一种可能性是可能同时使用多个机器人(每个线程一个),但我不太确定它们不会简单地相互冲突。

那么,如何在多线程环境中处理一个Robot对象,从而可以同时执行多个动作呢?

4

0 回答 0