Использование java.awt.Robot в многопоточной среде
Я работаю над (виртуальным) конкурентоспособным автоматическим игроком в тетрис.
Так как игра, конечно, конкурентоспособна, я бы хотел, чтобы мой игрок в тетрис нажал как можно больше клавиш одновременно. Решение, которое я нашел, состоит в том, чтобы выделить поток для каждого вида нажатия клавиш (таким образом, если отправляются два одинаковых ключа, возникает задержка, так как они находятся в одном потоке. Но если отправляются два отдельных ключа их потоки также выполняются раздельно, вызывая одновременное нажатие обеих клавиш).
Но из-за многопоточности я обеспокоен тем, что java.awt.Robot не является потокобезопасным (и поиск в Google /SO не приводит к информации о предмете). Я хотел бы избежать создания блокировок на объекте Robot, который я использую - если я сделаю это, вся система станет бессмысленной (так как тогда не будет нескольких нажатий клавиш одновременно, каждое будет идти сразу за другим),
Возможно, возможно использование нескольких роботов одновременно (по одному для каждого потока), но я не уверен, что они просто не будут конфликтовать друг с другом.
Итак, как я могу иметь дело с объектом Robot в многопоточной среде, чтобы одновременно можно было выполнить несколько действий?