I'm creating 3 threads for mini Web-crawler. When 3 threads created, main thread is continuing its job and terminated. I want main thread to process some tasks after child's executed(while sleeping). What I mean is,
1) Main thread created 3 threads.(Main thread should sleep, after creating child's)
2) 3 threads are crawled some pages and gone to sleep.
3) Now, I want main thread to wake-up and do some tasks.
4) Again main thread should go to sleep and 3 child's should wake-up.
Here, I don't know how to wake-up main thread, when all child's are sleeping...
If I use java.util.concurrent.CountDownLatch, After countdown it'll(Main thread) wake-up without seeing all child threads are sleeping or not. That is the concept of java.util.concurrent.CountDownLatch Correct? Can you give some code samples?
Inter-Thread mechanism communication, Some what doing now. But, it takes a lot of code. I want simple, understandable, Less code.
Or if this is a cycle where the main thread gathers pages to process and the child threads process them, then you might consider using an Executor / ThreadPool. See this part of the tutorials: http://docs.oracle.com/javase/tutorial/essential/concurrency/executors.html. Basically, you make a ThreadPool with 3 threads. The main thread submits three tasks, uses the Futures to wait for them to complete. Submits the next group of tasks, and repeat until done.