Nhập chủ đề và sự kiện đầu tiên từ luồng. Event sẽ giúp ta quản lý Thread, còn Thread sẽ tạo thread nhánh mới để không can thiệp vào thread chính
Chức năng này là động cơ để lặp lại. Tham số khoảng thời gian sẽ giữ thời lượng trễ trong khi tham số func sẽ giữ chức năng sẽ được thực thi. Khi gọi hàm này, tham số func sẽ được thực thi bằng lệnh gọi lambda. Nếu không sử dụng từ khóa lambda, bạn sẽ không thể thêm dấu ngoặc đơn vào hàm và nếu bạn làm vậy sẽ gây ra lỗi
Mã này cũng có một lỗ hổng. Nó thực thi miễn là luồng chính đang hoạt động. Điều gì sẽ xảy ra nếu bạn chỉ cần lặp lại một chức năng một số lần và hoặc dừng chức năng đó khi một sự kiện là đúng
Chúng tôi tạo một lớp “RepeatEvery” và đặt một số biến thành công khai và những biến khác thành riêng tư. cái tôi. số lượng sẽ trả về số lần lớp này tự lặp lại trong khi bản thân. stop sẽ được sử dụng để dừng lớp Thread
Chức năng __repeatEvery là riêng tư và nó giống như chức năng chúng ta đã tạo trước đó. Điều kiện if cũng kiểm tra xem luồng sẽ dừng hay tiếp tục
Đây là cách bạn sử dụng lớp. Bằng cách tạo một lớp, bạn có thể dễ dàng quản lý và tạo nhiều chức năng lặp lại
Ngoài ra còn có một lỗ hổng trong việc sử dụng mã này. Nếu có lỗi với luồng chính, luồng lặp lại của chúng tôi sẽ không dừng và nó sẽ chạy mãi mãi. Để khắc phục điều này, chỉ cần bọc mã của bạn bằng một lần thử và nắm bắt, như thế này
Cách phổ biến nhất để thực thi một chức năng mỗi x giây trong Python là sử dụng thời gian. phương thức ngủ []. Thời gian. Hàm sleep[] là một hàm có sẵn trong Python được sử dụng để làm cho chương trình ngủ trong thời gian đã chỉ định
Chúng ta có thể sử dụng thời gian. ngủ để thực thi cứ sau x giây. Có hai cách khác nhau để sử dụng thời gian. ngủ[]
Sử dụng thời gian sai cách. ngủ[]
Mã dưới đây không thực thi cứ sau 60 giây. nó đặt khoảng cách 60 giây giữa các lần thực hiện. Nó chỉ xảy ra sau mỗi 60 giây nếu mã được thực thi của bạn hoàn toàn không mất thời gian
import time
while True:
# Code executed here
time.sleep[60]
Cách tốt để sử dụng thời gian. ngủ[].
import time
starttime = time.time[]
while True:
print["tick"]
time.sleep[60.0 - [[time.time[] - starttime] % 60.0]]
Phương pháp số 2. Sử dụng mô-đun lập lịch trong Python để thực thi mã Python sau khoảng thời gian
Chúng ta có thể sử dụng mô-đun lập lịch để gọi hàm hoặc một khối mã python sau một khoảng thời gian bằng cách sử dụng mô-đun lập lịch. Mô-đun lập lịch là một mô-đun python được sử dụng để lên lịch cho mã
import sched, time
s = sched.scheduler[time.time, time.sleep]
def do_something[sc]:
print["Doing stuff..."]
# do your stuff
sc.enter[60, 1, do_something, [sc,]]
s.enter[60, 1, do_something, [s,]]
s.run[]
Phương pháp số 3. Sử dụng mô-đun apscheduler trong Python để thực thi chức năng cứ sau x giây
Bạn có thể sử dụng mô-đun apscheduler của bên thứ ba này trong python. Nó cũng rất hữu ích theo những cách khác. Bạn có thể cung cấp các chức năng khác như blockscheduler, TwistedScheduler và nhiều chức năng khác
from apscheduler.schedulers.background import BlockingScheduler
def print_t[]:
pass
sched = BlockingScheduler[]
sched.add_job[print_t, 'interval', seconds =60] #will do the print_t work for every 60 seconds
sched.start[]
Phương pháp số 4. Sử dụng mô-đun luồng để thực thi một chức năng sau một khoảng thời gian
Đây là mã python, nó chỉ cho bạn cách sử dụng mô-đun luồng để thực thi một chức năng sau một khoảng thời gian. Bạn có thể kiểm tra nó
import threading
import time
class RepeatedTimer[object]:
def __init__[self, interval, function, *args, **kwargs]:
self._timer = None
self.interval = interval
self.function = function
self.args = args
self.kwargs = kwargs
self.is_running = False
self.next_call = time.time[]
self.start[]
def _run[self]:
self.is_running = False
self.start[]
self.function[*self.args, **self.kwargs]
def start[self]:
if not self.is_running:
self.next_call += self.interval
self._timer = threading.Timer[self.next_call - time.time[], self._run]
self._timer.start[]
self.is_running = True
def stop[self]:
self._timer.cancel[]
self.is_running = False
Những bài viết liên quan
- Hơn 20 cuốn sách Python
- Tải xuống tệp lớn trong python với các yêu cầu
- Giải mã dữ liệu XDR bằng Python
Trò chuyện với tôi
Tôi hy vọng bạn thích Hướng dẫn Python này💗. Bây giờ, đừng ngần ngại để lại tin nhắn tại haxratali0@gamil. com. Tôi trả lời mọi thư tôi nhận được. tôi sẽ rất vui được trò chuyện với bạn