Hướng dẫn python start and stop thread - chuỗi bắt đầu và dừng python
Thư viện luồng có thể được sử dụng để thực hiện bất kỳ Python nào có thể gọi được trong luồng riêng của nó. Để thực hiện việc này, hãy tạo một thể hiện luồng và cung cấp cho người gọi mà bạn muốn thực thi dưới dạng mục tiêu như được hiển thị trong mã được đưa ra dưới đây -threading library can be used to execute any Python callable in its own thread. To do this, create a Thread instance and supply the callable that you wish to execute as a target as shown in the code given below – Mã số 1:
Khi một thể hiện luồng được tạo, nó không bắt đầu thực thi cho đến khi phương thức ____37 của nó (gọi hàm đích với các đối số bạn đã cung cấp) được gọi. Các luồng được thực thi trong luồng cấp hệ thống của riêng họ (ví dụ: luồng POSIX hoặc luồng Windows) được quản lý đầy đủ bởi hệ điều hành máy chủ. Sau khi bắt đầu, các luồng chạy độc lập cho đến khi hàm đích trả về.
Người ta cũng có thể yêu cầu tham gia với một chủ đề, chờ nó chấm dứt. Thông dịch viên vẫn chạy cho đến khi tất cả các luồng chấm dứt. Đối với các chủ đề chạy dài hoặc các tác vụ nền chạy mãi mãi, hãy xem xét nó làm cho chủ đề Daemonic. & NBSP; Mã số 3:
Chủ đề daemon có thể tham gia. Tuy nhiên, chúng bị phá hủy tự động khi luồng chính chấm dứt. Ngoài hai hoạt động được hiển thị, còn có nhiều điều khác để làm với các chủ đề. Ví dụ: không có hoạt động để chấm dứt một luồng, báo hiệu một luồng, điều chỉnh lịch trình của nó hoặc thực hiện bất kỳ hoạt động cấp cao nào khác. Để có những tính năng này, hãy tự mình xây dựng chúng. Để có thể chấm dứt các luồng, luồng phải được lập trình để thăm dò ý kiến tại các điểm được chọn. Ví dụ: đặt chủ đề của bạn vào một lớp, chẳng hạn như cái được đề cập trong mã bên dưới - Mã số 4: Đặt chủ đề vào một lớp.
Khi một thể hiện luồng được tạo, nó không bắt đầu thực thi cho đến khi phương thức ____37 của nó (gọi hàm đích với các đối số bạn đã cung cấp) được gọi. Các luồng được thực thi trong luồng cấp hệ thống của riêng họ (ví dụ: luồng POSIX hoặc luồng Windows) được quản lý đầy đủ bởi hệ điều hành máy chủ. Sau khi bắt đầu, các luồng chạy độc lập cho đến khi hàm đích trả về.
Người ta cũng có thể yêu cầu tham gia với một chủ đề, chờ nó chấm dứt. Thông dịch viên vẫn chạy cho đến khi tất cả các luồng chấm dứt. Đối với các chủ đề chạy dài hoặc các tác vụ nền chạy mãi mãi, hãy xem xét nó làm cho chủ đề Daemonic. & NBSP; Mã số 3:
Chủ đề daemon có thể tham gia. Tuy nhiên, chúng bị phá hủy tự động khi luồng chính chấm dứt. Ngoài hai hoạt động được hiển thị, còn có nhiều điều khác để làm với các chủ đề. Ví dụ: không có hoạt động để chấm dứt một luồng, báo hiệu một luồng, điều chỉnh lịch trình của nó hoặc thực hiện bất kỳ hoạt động cấp cao nào khác. Để có những tính năng này, hãy tự mình xây dựng chúng. Để có thể chấm dứt các luồng, luồng phải được lập trình để thăm dò ý kiến tại các điểm được chọn. Ví dụ: đặt chủ đề của bạn vào một lớp, chẳng hạn như cái được đề cập trong mã bên dưới -
Mã số 4: Đặt chủ đề vào một lớp.
Do khóa phiên dịch toàn cầu (GIL), các luồng Python bị giới hạn trong mô hình thực thi chỉ cho phép một luồng thực thi trong trình thông dịch tại bất kỳ thời điểm nào. Vì lý do này, các chủ đề Python thường không nên được sử dụng cho các nhiệm vụ chuyên sâu về mặt tính toán trong đó cố gắng đạt được sự song song trên nhiều CPU. Chúng phù hợp hơn nhiều để xử lý I/O và xử lý thực hiện đồng thời trong mã thực hiện các hoạt động chặn (ví dụ: chờ I/O, chờ kết quả từ cơ sở dữ liệu, v.v.). & NBSP; Mã số 6: Chủ đề được xác định thông qua kế thừa Từ lớp chủ đề
Các
Mặc dù điều này hoạt động, nó giới thiệu một sự phụ thuộc thêm giữa mã và thư viện luồng. Đó là, chỉ có thể sử dụng mã kết quả trong bối cảnh của các luồng, trong khi kỹ thuật được hiển thị trước đó liên quan đến việc viết mã không có sự phụ thuộc rõ ràng vào chủ đề. Bằng cách giải phóng mã của các phụ thuộc như vậy, nó có thể sử dụng được trong các bối cảnh khác có thể hoặc không liên quan đến các luồng. Chẳng hạn, người ta có thể thực thi mã trong một quy trình riêng biệt bằng cách sử dụng mô -đun đa bộ xử lý bằng mã được đưa ra dưới đây - Mã số 7:
Một lần nữa, điều này chỉ hoạt động nếu |