mirror of
https://github.com/Sosokker/python-howto.git
synced 2025-12-19 22:14:04 +01:00
46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
## Part 3: Parallelism with multiprocessing
|
|
|
|
In this section, we'll explore parallelism in Python using the multiprocessing module, which allows for concurrent execution using multiple processes.
|
|
### 1. Introduction to Parallelism
|
|
|
|
Parallelism involves executing multiple tasks simultaneously, utilizing multiple CPU cores. The multiprocessing module provides a way to achieve true parallelism by creating separate processes. In this example, we define a function square and use the multiprocessing.Pool to parallelize its execution across multiple processes.
|
|
|
|
```python
|
|
import multiprocessing
|
|
|
|
def square(number):
|
|
return number * number
|
|
|
|
if __name__ == "__main__":
|
|
numbers = [1, 2, 3, 4, 5]
|
|
with multiprocessing.Pool() as pool:
|
|
results = pool.map(square, numbers)
|
|
print(results)
|
|
|
|
```
|
|
|
|
### 2. Using multiprocessing
|
|
|
|
The multiprocessing module allows us to create and manage processes in Python. In this example, we define a function worker_function that each process will execute. We create multiple processes and start them using the start method. Finally, we wait for all processes to finish using the join method.
|
|
|
|
```python
|
|
import multiprocessing
|
|
|
|
def worker_function(number):
|
|
print(f"Worker process {number} is executing")
|
|
|
|
if __name__ == "__main__":
|
|
processes = []
|
|
for i in range(4):
|
|
process = multiprocessing.Process(target=worker_function, args=(i,))
|
|
processes.append(process)
|
|
process.start()
|
|
|
|
for process in processes:
|
|
process.join()
|
|
|
|
print("All processes have finished")
|
|
|
|
```
|
|
|
|
[Continue to Part 4: Combining Concurrency and Parallelism](combining.md) |