Get the App
SLTechnology News&Howtos  ›  Internet Technology  › 

The use of multithreading in programming

Shulou Source: shulou.com Published: 2022-06-02 08:37:51 10月04日 Update

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

Tags: Threads processing methods usage programming tasks results time learning content multiple efficiency data queues offsets management blocking large no business Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Microsoft macOS Docker Shulou Technology Huawei