How does java realize that a single thread starts multiple threads to process a list and the parent thread processes other operations after all child threads have finished processing?
This article will explain in detail how java can start multiple threads in a single thread to deal with a list and then deal with other operations after all child threads are processed. Xiaobian thinks it is very practical, so I share it with you for reference. I hope you can get something after reading this article.
Main class: ParentChildMain
Parent thread class: ParentChildPoolTest
Subthread class: ParentChildDoThread
Thread pool: ThreadPool
Import java.util.ArrayList
Public class ParentChildMain {
Private static ArrayList list = new ArrayList ()
Private static int controlNum = 0
Private static int listNum = 0
Public ParentChildMain () {
For (int I = 0; I < 50; iTunes +) {
List.add (String.valueOf (I))
}
ListNum = list.size ()
ParentChildPoolTest test = new ParentChildPoolTest ()
Test.start ()
}
Public static synchronized String getControlObj () {
If (listNum = = controlNum) {
Return null
}
String retValue = (String) list.get (controlNum)
ControlNum + +
Return retValue
}
Public static void main (String [] args) {
ParentChildMain main = new ParentChildMain ()
}
}
Import java.util.ArrayList
Public class ParentChildPoolTest extends Thread {
Int numThreads = 10
Int numTasks = 4
Public ParentChildPoolTest () {
}
Public void run () {
/ / generate thread pool
ThreadPool threadPool = new ThreadPool (numThreads)
/ / run the task
For (int item0; I