Home  >  Article  >  Java  >  The difference between processes and threads in java

The difference between processes and threads in java

王林
王林Original
2019-11-12 17:26:413737browse

The difference between processes and threads in java

The concept of process and thread

Process (the smallest unit of resource allocation): It is a dynamic concept that competes for computer system resources (CPU , memory, IO, etc.), it is the basic unit for allocating and managing resources during the execution of concurrently executed programs.

Thread (the smallest unit of program execution): It is a basic unit that is smaller than a process and runs independently. A thread is also called a lightweight process. It is the basic unit of CPU scheduling and dispatch.

A program has at least one process, and a process has at least one thread.

The difference between processes and threads

1. Address space: Threads in the same process share the address space of this process, while processes are independent Address space;

2. Resource ownership: Threads in the same process share the resources of this process, such as IO, memory, CPU, etc., but the resources between processes are independent;

3 , so multi-process programs are more robust than multi-threads. As long as one thread of a multi-thread program dies, the entire process will die; but after a process crashes, it will not affect other processes in protected mode, because the process has its own Independent address space;

4. When switching processes, it consumes a lot of resources and is highly efficient. So when it comes to frequent switching, it is better to use threads than processes. If concurrent operations are performed at the same time and some variables need to be shared, threads can only be used.

5. Execution process: A process is equivalent to an instance of application execution, so each independent process has an entrance to program running, a program sequential execution sequence and a program running exit. Each thread is equivalent to an execution stream of this application (process), so it cannot be executed independently and must depend on the application (process). The application provides multiple thread execution control;

6. Threads It is the basic unit of processor scheduling, but the process is not;

7. Both threads and processes can be executed concurrently;

Advantages and Disadvantages

Thread execution The overhead is small, but it is not conducive to resource management and protection. Threads are suitable for running on SMP (Symmetric Multi-Processing) machines (multi-CPU systems).

The process execution overhead is high, but it can manage and protect resources well.

Recommended tutorial: Java tutorial

The above is the detailed content of The difference between processes and threads in java. For more information, please follow other related articles on the PHP Chinese website!

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