Home  >  Article  >  Java  >  Java Concurrency Detailed Introduction to Parallelism

Java Concurrency Detailed Introduction to Parallelism

黄舟
黄舟Original
2017-02-28 10:26:591384browse

Parallel and concurrency This entry is often used in multi-threaded programs. But what exactly do parallelism and concurrency mean? well are they the same or what?

The simple answer is "no". They are not the same terms, although they look very similar on the surface. It also took me some time to discover and understand the differences between them. So I decided to add an article on their topic to this tutorial.

Concurrency

Concurrency means that an application runs more than one task at the same time. If the computer has only one CPU, the application may not actually run more than one program at a time, but within the application more than one program may be running at a time. It cannot completely end a task before it starts the next one.

.

Parallel

Parallel means that the application divides his tasks into small Subtasks that can be run in parallel, for example on multiple CPUs at the same time.


Detailed comparison of concurrency and parallelism

As you can see, concurrency is How an application handles multiple tasks. Applications can execute tasks sequentially or execute multiple tasks concurrently.

Parallelism, in other words, is about how an application handles a single task. The application may execute the task continuously from start to finish, or split the task into multiple subtasks that can be run in parallel.

As you can see, an application can be concurrent, but not parallel. This means that it performs more than one task at the same time, but this task cannot be separated into subtasks.

An application can also be parallel rather than concurrent. This means that the application executes a task at the same time, and the task is separated into multiple subtasks to run in parallel.

In addition, an application can be neither concurrent nor parallel. This means that the application only works on one task at a time, and the task is not separated into subtasks.

Finally, an application can be both concurrent and parallel. In this case, it can work on multiple tasks at the same time, or it can separate each task into multiple sub-tasks to run in parallel. implement. However, some of the benefits of concurrency and parallelism may be lost in this scenario because the CPU in the computer is already quite busy with concurrency or parallelism. Combining the two of them may result in a small performance gain or even a performance loss. Before you blindly adopt a concurrency model, you need to confirm the analysis and measurement.


The above is the detailed introduction of Java concurrency to parallelism. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Java same threadNext article:Java same thread