You should not have to halt the main process. Most systems support
time-slicing so you don't even have to worry about yield(ing) your
processes. If your system does not perform time-slicing, add
Thread.currentThread().yield() in your main thread and that will give
the other threads a chance to run.