Here are the steps to move the frontend out of the Main class and into its own thread:
1. Create a Frontend class that extends AbstractHandler and implements Runnable
2. Move the frontend handling logic from Main into the run() method of Frontend
3. Add a handleCount field to Frontend of type AtomicInteger
4. In the run() method, periodically log the value of handleCount every 5 seconds
5. In the handle() method, increment handleCount using getAndIncrement() after generating the page
6. From Main, instantiate a Frontend object and call start() on its thread to run asynchronously
This will separate the frontend into its own thread of execution. The handleCount field