php development needs to understand processes and threads, because multi-threaded development will also be encountered. So what are processes and threads?
1. What is a process
A process is an instance of program execution. A process can be allocated to resources such as CPU and memory. A process generally includes an instruction set and system resources, where the instruction set is your code, and system resources include CPU, memory, I/O, etc.
2. What is a thread?
A thread is an execution stream of a process. A thread cannot allocate system resources. It is part of the process and runs independently smaller than the process. The unit.
The process has two characteristics:
1. Resource ownership
2. Scheduling execution (instruction set)
Thread It is a part of scheduling execution and refers to the path of process execution, also called program execution flow. Threads are sometimes called lightweight processes.
3. The relationship between processes and threads
The process is like a landlord, with land (system resources), and the thread is like a tenant (Thread, executes the farming process). Each landlord (process) only needs one working tenant (thread). Process - the smallest unit of resource allocation, relatively robust, crashes generally do not affect other processes, but switching processes consumes resources and is less efficient.
Thread - the smallest unit of program execution. There is no independent address space. If one thread dies, the entire process may die, but it saves resources and has high switching efficiency.
4. Common processes and threads in PHP programming
1. In web applications, every time we access PHP, we create a PHP process, and of course we will also create At least one PHP thread.
2. PHP uses pcntl for multi-process programming.
3. PHP uses pthreads for multi-thread programming.
4. Each process of nginx has only one thread. Each thread can handle access from multiple clients
5. php-fpm uses a multi-process model. Each process has only one thread, and each thread can only handle one client access.
6. Apache may use a multi-process model or a multi-thread model, depending on which SAPI is used.
Recommended tutorial: PHP video tutorial
The above is the detailed content of Is php multi-process or multi-threaded?. For more information, please follow other related articles on the PHP Chinese website!