Hướng dẫn why is multithreading used in python? - tại sao đa luồng được sử dụng trong python?

Tiếp theo → ← Prev

Một luồng là đơn vị nhỏ nhất của một chương trình hoặc quy trình được thực hiện độc lập hoặc được lên lịch bởi hệ điều hành. Trong hệ thống máy tính, một hệ điều hành đạt được đa nhiệm bằng cách chia quy trình thành các luồng. Một chủ đề là một quá trình nhẹ đảm bảo thực hiện riêng quá trình trên hệ thống. Trong Python 3, khi nhiều bộ xử lý đang chạy trên một chương trình, mỗi bộ xử lý chạy đồng thời để thực hiện các tác vụ của mình một cách riêng biệt.

Hướng dẫn why is multithreading used in python? - tại sao đa luồng được sử dụng trong python?

Python đa luồng

MultiThreading là một kỹ thuật luồng trong lập trình Python để chạy nhiều luồng đồng thời bằng cách chuyển đổi nhanh chóng giữa các luồng với trợ giúp CPU (được gọi là chuyển đổi ngữ cảnh). Bên cạnh đó, nó cho phép chia sẻ không gian dữ liệu của mình với các luồng chính bên trong một quy trình chia sẻ thông tin và giao tiếp với các luồng khác dễ dàng hơn các quy trình riêng lẻ. MultiThreading nhằm mục đích thực hiện đồng thời nhiều tác vụ, làm tăng hiệu suất, tốc độ và cải thiện kết xuất của ứng dụng.

Lưu ý: Khóa phiên dịch toàn cầu Python (GIL) cho phép chạy một luồng tại một thời điểm, ngay cả máy cũng có nhiều bộ xử lý.

Lợi ích của đa luồng trong Python

Sau đây là những lợi ích để tạo một ứng dụng đa luồng trong Python, như sau:

  1. Nó đảm bảo việc sử dụng hiệu quả tài nguyên hệ thống máy tính.
  2. Các ứng dụng đa luồng có phản ứng nhanh hơn.
  3. Nó chia sẻ tài nguyên và trạng thái của nó với các chủ đề phụ (trẻ em) làm cho nó kinh tế hơn.
  4. Nó làm cho kiến ​​trúc đa bộ xử lý hiệu quả hơn do sự giống nhau.
  5. Nó tiết kiệm thời gian bằng cách thực hiện nhiều luồng cùng một lúc.
  6. Hệ thống không yêu cầu quá nhiều bộ nhớ để lưu trữ nhiều luồng.

Khi nào nên sử dụng đa luồng trong Python?

Đó là một kỹ thuật rất hữu ích để tiết kiệm thời gian và cải thiện hiệu suất của một ứng dụng. MultiThreading cho phép lập trình viên chia các tác vụ ứng dụng thành các tác vụ phụ và đồng thời chạy chúng trong một chương trình. Nó cho phép các chủ đề giao tiếp và chia sẻ tài nguyên như tệp, dữ liệu và bộ nhớ cho cùng một bộ xử lý. Hơn nữa, nó làm tăng khả năng phản hồi của người dùng để tiếp tục chạy chương trình ngay cả khi một phần của ứng dụng là độ dài hoặc bị chặn.tasks into sub-tasks and simultaneously run them in a program. It allows threads to communicate and share resources such as files, data, and memory to the same processor. Furthermore, it increases the user's responsiveness to continue running a program even if a part of the application is the length or blocked.

Làm thế nào để đạt được đa luồng trong Python?

Có hai mô -đun chính của đa luồng được sử dụng để xử lý các luồng trong Python.

  1. Mô -đun chủ đề
  2. Mô -đun luồng

Mô -đun chủ đề

Nó được bắt đầu với Python 3, được chỉ định là lỗi thời và chỉ có thể được truy cập bằng _thread hỗ trợ khả năng tương thích ngược._thread that supports backward compatibility.

Syntax:

Để thực hiện mô -đun luồng trong Python, chúng ta cần nhập một mô -đun luồng và sau đó xác định một hàm thực hiện một số hành động bằng cách đặt mục tiêu với một biến.thread module and then define a function that performs some action by setting the target with a variable.

Thread.py

Output:

Calculate the square root of the given number
 Square is:  16
 Square is:  25
 Square is:  36
 Square is:  49
 Square is:  4
 Calculate the cube of the given number
 Cube is:  64
 Cube is:  125
 Cube is:  216
 Cube is:  343
 Cube is:  8
 Total time taken by threads is: 3.005793809890747

Mô -đun luồng

Mô-đun luồng là một triển khai đa luồng cấp cao được sử dụng để triển khai một ứng dụng trong Python. Để sử dụng đa luồng, chúng ta cần nhập mô -đun luồng trong chương trình Python.

Phương pháp lớp chủ đề

Phương phápSự mô tả
start() Một phương thức start () được sử dụng để bắt đầu hoạt động của một luồng. Và nó chỉ gọi một lần cho mỗi luồng để việc thực thi luồng có thể bắt đầu.
run() Phương thức Run () được sử dụng để xác định hoạt động của luồng và có thể được ghi đè bởi một lớp mở rộng lớp luồng.
join() Một phương thức tham gia () được sử dụng để chặn việc thực thi mã khác cho đến khi luồng kết thúc.

Thực hiện theo các bước dưới đây để thực hiện mô -đun luồng trong đa luồng Python:

1. Nhập mô -đun luồng

Tạo một luồng mới bằng cách nhập mô -đun luồng, như được hiển thị.threading module, as shown.

Syntax:

Một mô -đun luồng được tạo thành từ một lớp luồng, được khởi tạo để tạo một luồng python.threading module is made up of a Thread class, which is instantiated to create a Python thread.

2. Khai báo các tham số luồng: Nó chứa hàm đích, đối số và kwargs là tham số trong lớp ren (). It contains the target function, argument, and kwargs as the parameter in the Thread() class.

  • Mục tiêu: Nó xác định tên chức năng được thực hiện bởi luồng.: It defines the function name that is executed by the thread.
  • Args: Nó xác định các đối số được truyền đến tên hàm đích.: It defines the arguments that are passed to the target function name.

Ví dụ:

Trong mã trên, chúng tôi đã gọi hàm print_hello () làm tham số đích. Print_hello () chứa một tham số n, được truyền đến tham số Args.print_hello() function as the target parameter. The print_hello() contains one parameter n, which passed to the args parameter.

3. Bắt đầu một luồng mới: Để bắt đầu một luồng trong đa luồng Python, hãy gọi đối tượng của lớp. Phương thức start () có thể được gọi một lần cho mỗi đối tượng luồng; Nếu không, nó ném một lỗi ngoại lệ. To start a thread in Python multithreading, call the thread class's object. The start() method can be called once for each thread object; otherwise, it throws an exception error.

Syntax:

4. Phương thức tham gia: Đó là phương thức tham gia () được sử dụng trong lớp luồng để tạm dừng thực thi của luồng chính và chờ cho đến khi thực hiện hoàn toàn đối tượng luồng. Khi đối tượng luồng được hoàn thành, nó bắt đầu thực hiện luồng chính trong Python. It is a join() method used in the thread class to halt the main thread's execution and waits till the complete execution of the thread object. When the thread object is completed, it starts the execution of the main thread in Python.

Joinmethod.py

Output:

Hello, how old are you? 20
Thank you

Khi chương trình trên được thực thi, phương thức tham gia () tạm dừng việc thực thi luồng chính và chờ cho đến khi luồng T1 được thực hiện hoàn toàn. Khi T1 được thực hiện thành công, luồng chính bắt đầu thực thi.

Lưu ý: Nếu chúng tôi không sử dụng phương thức Jop (), trình thông dịch có thể thực hiện bất kỳ câu lệnh in nào bên trong chương trình Python. Nói chung, nó thực thi câu lệnh in đầu tiên vì trình thông dịch thực thi các dòng mã từ bắt đầu của chương trình.

5. Các chủ đề đồng bộ hóa trong Python

Đây là một cơ chế đồng bộ hóa luồng đảm bảo không có hai luồng nào có thể thực hiện đồng thời một phân đoạn cụ thể bên trong chương trình để truy cập các tài nguyên được chia sẻ. Tình hình có thể được gọi là các phần quan trọng. Chúng tôi sử dụng một điều kiện cuộc đua để tránh điều kiện phần quan trọng, trong đó hai luồng không truy cập tài nguyên cùng một lúc.

Hãy viết một chương trình để sử dụng mô -đun luồng trong đa luồng Python.

Threading.py

Output:

Calculate the square root of the given number
 Calculate the cube of the given number
 Square is:  16
 Cube is:  64
 Square is:  25
 Cube is:  125
 Square is:  36
 Cube is:  216
 Square is:  49
 Cube is:  343
 Square is:  4
 Cube is:  8
 Total time taken by threads is: 1.5140972137451172
 Again executing the main thread
 Thread 1 and Thread 2 have finished their execution.


Chủ đề tiếp theo trong PythonStatic in Python

← Tiếp theo →

Những lý do để sử dụng đa luồng là gì?

Lợi ích của đa luồng*..
Thông lượng được cải thiện.....
Sử dụng đồng thời và hoàn toàn đối xứng của nhiều bộ xử lý để tính toán và I/O ..
Khả năng đáp ứng ứng dụng vượt trội.....
Cải thiện khả năng đáp ứng của máy chủ.....
Tối thiểu hóa sử dụng tài nguyên hệ thống.....
Đơn giản hóa cấu trúc chương trình.....
Giao tiếp tốt hơn ..

Nơi đa luồng được sử dụng trong Python?

Khi nào nên sử dụng đa luồng trong Python?Đó là một kỹ thuật rất hữu ích để tiết kiệm thời gian và cải thiện hiệu suất của một ứng dụng.MultiThreading cho phép lập trình viên chia các tác vụ ứng dụng thành các tác vụ phụ và đồng thời chạy chúng trong một chương trình.for time-saving and improving the performance of an application. Multithreading allows the programmer to divide application tasks into sub-tasks and simultaneously run them in a program.