Tôi đã tìm thấy một cách (hacky) để sử dụng lại một đối tượng luồng. Bằng cách tạo một lớp con và thực hiện phương thức đặt lại, trong trường hợp bạn chỉ muốn thay đổi các đối số của hàm mà luồng được "liên kết". Show
Trong vỏ trăn: Chạy ví dụ đầu tiên tạo ra luồng và chạy nó như trước.Chủ đề chính tham gia vào chủ đề mới cho đến khi nó chấm dứt. Chủ đề chính sau đó tạo ra một thể hiện luồng mới với cùng một cấu hình, khởi động nó và tham gia nó. Như chúng tôi mong đợi, chủ đề mới này thực thi mà không gặp sự cố. Xin chào từ chủ đề mớiĐọc thêmPhần này cung cấp các tài nguyên bổ sung mà bạn có thể thấy hữu ích. from threading import Thread, Event class ReusableThread(Thread) def __init__(self, target, args): self._startSignal = Event() self._oneRunFinished = Event() self._finishIndicator = False self._callable = target self._callableArgs = args Thread.__init__(self) def restart(self) self._startSignal.set() def run(self) self.restart() while(True): self._startSignal.wait() self._startSignal.clear() if(self._finishIndicator): self._oneRunFinished.set() return self._callable(*self._callableArgs) self._oneRunFinished.set() def join(self) self._oneRunFinished.wait() self._oneRunFinished.clear() def finish(self): self._finishIndicator = True self.restart() self.join() APIChủ đề - song song dựa trên luồng# Bắt đầu chủ đề Bạn không thể khởi động lại một luồng trong Python, thay vào đó bạn phải tạo và bắt đầu một luồng mới với cùng một cấu hình.cannot restart a thread in Python, instead you must create and start a new thread with the same configuration. Trong hướng dẫn này, bạn sẽ khám phá cách mô phỏng khởi động lại một luồng trong Python. Bắt đầu nào.
Một chủ đề là một chủ đề thực thi trong một chương trình máy tính. Mỗi chương trình Python có ít nhất một luồng thực thi được gọi là luồng chính. Cả hai quy trình và luồng được tạo và quản lý bởi hệ điều hành cơ bản. Đôi khi chúng ta có thể cần tạo các luồng bổ sung trong chương trình của chúng tôi để thực thi mã đồng thời. Python cung cấp khả năng tạo và quản lý các luồng mới thông qua mô -đun luồng và lớp luồng.threading.Thread class. Bạn có thể tìm hiểu thêm về các chủ đề Python trong Guude:
Có thể có những trường hợp các chủ đề mới của chúng tôi bị chấm dứt, thông thường bằng cách hoàn thành việc thực thi của họ hoặc bằng cách gây ra lỗi và chúng tôi cần khởi động lại chúng. Điều này có thể là vì nhiều lý do như:
Một chủ đề có thể được khởi động lại trong Python và nếu có thì làm thế nào? Cách khởi động lại một luồngVí dụ về khởi động lại một luồng bị chấm dứt Ví dụ về việc khởi động lại một luồng với một thể hiện mới Đọc thêm Takeawaysrun() function. Một chủ đề là một chủ đề thực thi trong một chương trình máy tính.start() function on a terminated thread will result in a RuntimeError indicating that threads can only be started once.
Đôi khi chúng ta có thể cần tạo các luồng bổ sung trong chương trình của chúng tôi để thực thi mã đồng thời.start() function. Python cung cấp khả năng tạo và quản lý các luồng mới thông qua mô -đun luồng và lớp luồng. Bạn có thể tìm hiểu thêm về các chủ đề Python trong Guude: Ví dụ về khởi động lại một luồng bị chấm dứtVí dụ về việc khởi động lại một luồng với một thể hiện mới Đọc thêmRuntimeError. Takeaways Một chủ đề là một chủ đề thực thi trong một chương trình máy tính.
Có thể có những trường hợp các chủ đề mới của chúng tôi bị chấm dứt, thông thường bằng cách hoàn thành việc thực thi của họ hoặc bằng cách gây ra lỗi và chúng tôi cần khởi động lại chúng.threading.Thread class and configure it to execute our custom task() function via the “target” keyword.
Chủ đề là một nhiệm vụ nền Daemon mà chúng tôi muốn luôn chạy.run() function and in turn call our custom task() function.
Chủ đề là một nhiệm vụ nền Daemon mà chúng tôi muốn luôn chạy.
Chủ đề là một nhiệm vụ nền Daemon mà chúng tôi muốn luôn chạy.
Chủ đề là một nhiệm vụ nền Daemon mà chúng tôi muốn luôn chạy.
Chủ đề là một nhiệm vụ nền Daemon mà chúng tôi muốn luôn chạy. Chủ đề đang thực hiện một tác vụ có thể được khởi động lại từ điểm kiểm tra. Một chủ đề có thể được khởi động lại trong Python và nếu có thì làm thế nào? Kết quả là một thời gian chạy, như chúng tôi mong đợi.RuntimeError, as we expected.
Điều này nhấn mạnh rằng thực sự chúng ta không thể gọi phương thức start () (ví dụ: khởi động lại) một luồng đã chấm dứt.start() method (e.g. restart) a thread that has already terminated. Tiếp theo, hãy để Lôi nhìn vào một cách tiếp cận thay thế để tạo một thể hiện chủ đề mới. Khóa học luồng python miễn phí Tải xuống bảng gian lận API luồng của tôi và như một phần thưởng, bạn sẽ có quyền truy cập miễn phí vào khóa học email 7 ngày của tôi. Khám phá cách sử dụng mô -đun luồng Python bao gồm cách tạo và khởi động các luồng mới và cách sử dụng khóa và semaphores mutex Tìm hiểu thêm & NBSP; Ví dụ về việc khởi động lại một luồng với một thể hiện mớiChúng ta có thể mô phỏng khởi động lại một luồng bằng cách tạo một luồng mới với cùng một cấu hình và bắt đầu nó thay thế. Một chủ đề mới có cùng cấu hình có thể được tạo. Điều này liên quan đến các đối số cho hàm tạo như:
Nếu chúng tôi xem lại mã cho lớp luồng.threading.Thread class, we can see that arguments are stored internally within the thread, although are private with names like _name, _target, _args, and so on. Thay vì cố gắng truy cập các thuộc tính riêng này, thay vào đó chúng ta có thể tạo một thể hiện luồng mới và chỉ định các đối số cho hàm tạo theo cách thủ công.
RunTimEError: Chủ đề chỉ có thể được bắt đầu một lần
Điều này nhấn mạnh rằng thực sự chúng ta không thể gọi phương thức start () (ví dụ: khởi động lại) một luồng đã chấm dứt. Tiếp theo, hãy để Lôi nhìn vào một cách tiếp cận thay thế để tạo một thể hiện chủ đề mới.
Khám phá cách sử dụng mô -đun luồng Python bao gồm cách tạo và khởi động các luồng mới và cách sử dụng khóa và semaphores mutex Tìm hiểu thêm & NBSP;
Điều này nhấn mạnh rằng thực sự chúng ta không thể gọi phương thức start () (ví dụ: khởi động lại) một luồng đã chấm dứt. Tiếp theo, hãy để Lôi nhìn vào một cách tiếp cận thay thế để tạo một thể hiện chủ đề mới. Khóa học luồng python miễn phí
Tải xuống bảng gian lận API luồng của tôi và như một phần thưởng, bạn sẽ có quyền truy cập miễn phí vào khóa học email 7 ngày của tôi.Khám phá cách sử dụng mô -đun luồng Python bao gồm cách tạo và khởi động các luồng mới và cách sử dụng khóa và semaphores mutex Tìm hiểu thêm & NBSP;
Chúng ta có thể mô phỏng khởi động lại một luồng bằng cách tạo một luồng mới với cùng một cấu hình và bắt đầu nó thay thế.
Tên chủ đề.
Nếu chúng tôi xem lại mã cho lớp luồng.Thay vì cố gắng truy cập các thuộc tính riêng này, thay vào đó chúng ta có thể tạo một thể hiện luồng mới và chỉ định các đối số cho hàm tạo theo cách thủ công. # Tạo một luồng mới với cùng một cấu hình Sau đó, bắt đầu và tham gia nó như trước đây. |