How can I pass messages to another thread without using a blocking queue? <p>I have a pretty straight forward server (using kryonet). The clients are only storing the current state of the car (x,y,angle etc) and are sending requests of acceleration and turning.</p> <p>The server is receiving the requests and adding them to a ArrayBlockingQueue that the physics thread drains and reads and updates.</p> <p>When adding another player, the speed of the game slows down by almost double. I have ruled out a lot of things (I have all updates and package sending throttled at 60Hz.)</p> <p>I am suspecting that using a blocking queue is blocking so much that it is causing the slowdown.</p> <p>How can I send the client requests to the physics thread without blocking issues?</p>