1. Так же как и в любом другом приложении.
2. Есть. Можно загуглить "Java async". Вот первый результат:
https://www.baeldung.com/java-asynchronous-programming
3. Всегда это будет отдельный поток (а как вы вообще себе представляетет асинхронное выполнение без многопоточности?!), но в современной джаве есть несколько вариантов, в которых вы вообще
new Thread
можете ниразу и не написать.