Luồng giải thích với ví dụ trong python là gì?

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 thi độ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, 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 luồng là một quy trình nhẹ đảm bảo thực thi quy trình một cách riêng biệt 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ý sẽ chạy đồng thời để thực hiện các tác vụ của nó một cách riêng biệt

Python đa luồng

Đa luồng là một kỹ thuật phân luồng trong lập trình Python để chạy đồng thời nhiều luồng bằng cách chuyển đổi nhanh chóng giữa các luồng với sự trợ giúp của CPU [được gọi là chuyển ngữ cảnh]. Bên cạnh đó, nó cho phép chia sẻ không gian dữ liệu của nó 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 so với các quy trình riêng lẻ. Đa luồng nhằm mục đích thực hiện đồng thời nhiều tác vụ, giúp tăng hiệu suất, tốc độ và cải thiện kết xuất của ứng dụng

Ghi chú. 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ả khi máy 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, cụ thể như sau

  1. Nó đảm bảo 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 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 luồng con [con] giúp tiết kiệm hơn
  4. Nó làm cho kiến ​​trúc đa bộ xử lý hiệu quả hơn do sự tương đồng
  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 nhiều luồng

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

Đây 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 ứng dụng. Đa luồng cho phép lập trình viên chia các tác vụ của ứ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 luồng giao tiếp và chia sẻ các 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 quá dài hoặc bị chặn

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

Có hai mô-đun đa luồng chính đượ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

cú pháp

Để triển khai mô-đun luồng trong Python, chúng ta cần nhập mô-đun luồng và sau đó xác định hàm thực hiện một số hành động bằng cách đặt mục tiêu bằng một biến

Chủ đề. py

đầu ra

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 thức lớp chủ đề

MethodsDescriptionstart[] 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 để quá trình 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ể bị ghi đè bởi một lớp mở rộng lớp luồng. tham gia [] 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 để triển khai mô-đun luồng trong Đa luồng Python

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

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

cú pháp

Một mô-đun luồng được tạo thành từ một lớp Chủ đề, được khởi tạo để tạo một luồng Python

2. Khai báo các tham số luồng. Nó chứa hàm đích, đối số và kwargs làm tham số trong lớp Thread[]

  • Mục tiêu. Nó định nghĩa tên hàm được thực thi bởi luồng
  • lập luận. Nó định nghĩa các đối số được truyền cho tên hàm đích

Ví dụ

Trong đoạn 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 cho tham số args

3. Bắt đầu một chủ đề 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 luồng. Phương thức start[] có thể được gọi một lần cho mỗi đối tượng luồng;

cú pháp

4. tham gia phương pháp. Nó là một phương thức join[] được sử dụng trong lớp luồng để tạm dừng quá trình thực thi của luồng chính và đợi cho đến khi đối tượng luồng thực hiện xong. Khi hoàn thành đối tượng luồng, nó bắt đầu thực thi luồng chính trong Python

tham gia phương pháp. py

đầu ra

Hello, how old are you? 20
Thank you

Khi chương trình trên được thực thi, phương thức join[] tạm dừng việc thực thi luồng chính và đợi cho đến khi luồng t1 được thực thi hoàn toàn. Khi t1 được thực hiện thành công, luồng chính bắt đầu thực hiện

Ghi chú. Nếu chúng ta không sử dụng phương thức join[] thì trình thông dịch có thể thực thi 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ừ đầu chương trình

5. Đồng bộ hóa chủ đề trong Python

Đó là cơ chế đồng bộ hóa luồng để đảm bảo không có hai luồng nào có thể thực thi đồng thời một phân đoạn cụ thể bên trong chương trình để truy cập tài nguyên được chia sẻ. Tình hình có thể được gọi là phần quan trọng. Chúng tôi sử dụng điều kiện cạnh tranh để 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

Làm thế nào luồng được thực hiện trong Python?

Trong mô-đun luồng, để chạy hoặc thực thi luồng, bạn sử dụng phương thức start[], phương thức này chỉ chịu trách nhiệm chạy luồng. You will also use the join method, which means that wait until all the thread execution is complete.

Điều kiện luồng trong python là gì?

Một biến điều kiện cho phép một hoặc nhiều luồng đợi cho đến khi chúng được thông báo bởi một luồng khác . Nếu đối số khóa được đưa ra và không phải là Không có, thì nó phải là đối tượng Lock hoặc RLock và nó được sử dụng làm khóa bên dưới. Mặt khác, một đối tượng RLock mới được tạo và sử dụng làm khóa bên dưới.

Mô-đun luồng trong Python là gì?

Mô-đun luồng. Phương thức này bắt đầu một chuỗi mới và trả về mã định danh của chuỗi đó . Chuỗi thực thi chức năng "hàm" [hàm là một tham chiếu đến một hàm] với danh sách đối số args [phải là một danh sách hoặc một bộ]. Đối số kwargs tùy chọn chỉ định một từ điển các đối số từ khóa.

giải thích chi tiết luồng là gì?

Định nghĩa. Một luồng là một luồng điều khiển tuần tự duy nhất trong một chương trình . Sự phấn khích thực sự xung quanh các chủ đề không phải là về một chủ đề tuần tự duy nhất. Thay vào đó, nó nói về việc sử dụng nhiều luồng chạy đồng thời và thực hiện các nhiệm vụ khác nhau trong một chương trình.

Chủ Đề