The use of multithreading in programming
This article mainly explains "the use of multithreading in programming". The content of the explanation in the article is simple and clear, and it is easy to learn and understand. Please follow the editor's train of thought. Let's study and learn how to use multithreading in programming.
Examples of ptn multithreading usage:
In the ptn project, due to the large amount of tunnel data captured by the network management system, each tunnel needs to be processed relative to the business. In the traditional for cycle, each tunnel is executed in turn, which is very slow.
Now the large tunnerl list is divided into n list, and each list is a thread to improve efficiency.
Details are as follows:
Jdk comes with thread pool result manager: ExecutorCompletionService, which encapsulates BlockingQueue and Executor. Then use the ExecutorCompletionService.submit () method to submit the task.
1. Create a new thread pool
ExecutorService exs = Executors.newFixedThreadPool (analysisThreadNum)
two。 Thread pool manager, which can obtain multithreaded processing results
CompletionService completionService = new ExecutorCompletionService (exs)
3. Split a list into multiple list equally divided into tunnullist
List averageAssign = CommUtils.averageAssign (tunnels, analysisThreadNum)
4. Traversing averageAssign and averaging list
List futureList = new ArrayList ()
For (List list: averageAssign) {
FutureList.add (completionService.submit (new LogicPathOverlappedCheckTask (list, portNameLinkIdMap,tunnelClassifyMap, allNEs, allBoards, allTopoLines))
}
5. Merge multithreaded results
For (int I = 1, curr = 0, length = futureList.size (); I