Inside first thread I need to create another thread.
Thread thread2 = new Thread(bworker);
thread2.start();
The problem is that when first thread finishes it’s job, thread2 get’s terminated though it has more work to do.
How can I keep it alive until it finishes it’s work?
I don’t want to use join because it will block the flow of the first thread.
The second thread won’t be automatically terminated when the first thread finishes. That’s not how threads work. The only thing like that is that the whole process will terminate if there are no non-daemon threads alive. Assuming that’s not the situation here, I think your diagnostics are messed up around the second thread – or it’s dying for some other reason.