Hướng dẫn threading timer python repeat - hẹn giờ luồng python lặp lại

Tôi đã thay đổi một số mã trong mã Swapnil-Jariwala để tạo một đồng hồ điều khiển nhỏ.

from threading import Timer, Thread, Event
from datetime import datetime

class PT():

    def __init__(self, t, hFunction):
        self.t = t
        self.hFunction = hFunction
        self.thread = Timer(self.t, self.handle_function)

    def handle_function(self):
        self.hFunction()
        self.thread = Timer(self.t, self.handle_function)
        self.thread.start()

    def start(self):
        self.thread.start()

def printer():
    tempo = datetime.today()
    h,m,s = tempo.hour, tempo.minute, tempo.second
    print(f"{h}:{m}:{s}")


t = PT(1, printer)
t.start()

Đầu ra

>>> 11:39:11
11:39:12
11:39:13
11:39:14
11:39:15
11:39:16
...

Đồng hồ bấm giờ với giao diện đồ họa Tkinter

Mã này đặt bộ hẹn giờ đồng hồ trong một cửa sổ nhỏ với tkinter

from threading import Timer, Thread, Event
from datetime import datetime
import tkinter as tk

app = tk.Tk()
lab = tk.Label(app, text="Timer will start in a sec")
lab.pack()


class perpetualTimer():

    def __init__(self, t, hFunction):
        self.t = t
        self.hFunction = hFunction
        self.thread = Timer(self.t, self.handle_function)

    def handle_function(self):
        self.hFunction()
        self.thread = Timer(self.t, self.handle_function)
        self.thread.start()

    def start(self):
        self.thread.start()

    def cancel(self):
        self.thread.cancel()


def printer():
    tempo = datetime.today()
    clock = "{}:{}:{}".format(tempo.hour, tempo.minute, tempo.second)
    try:
        lab['text'] = clock
    except RuntimeError:
        exit()


t = perpetualTimer(1, printer)
t.start()
app.mainloop()

Một ví dụ về trò chơi flashcards (loại)

from threading import Timer, Thread, Event
from datetime import datetime


class perpetualTimer():

    def __init__(self, t, hFunction):
        self.t = t
        self.hFunction = hFunction
        self.thread = Timer(self.t, self.handle_function)

    def handle_function(self):
        self.hFunction()
        self.thread = Timer(self.t, self.handle_function)
        self.thread.start()

    def start(self):
        self.thread.start()

    def cancel(self):
        self.thread.cancel()


x = datetime.today()
start = x.second


def printer():
    global questions, counter, start
    x = datetime.today()
    tempo = x.second
    if tempo - 3 > start:
        show_ans()
    #print("\n{}:{}:{}".format(tempo.hour, tempo.minute, tempo.second), end="")
    print()
    print("-" + questions[counter])
    counter += 1
    if counter == len(answers):
        counter = 0


def show_ans():
    global answers, c2
    print("It is {}".format(answers[c2]))
    c2 += 1
    if c2 == len(answers):
        c2 = 0


questions = ["What is the capital of Italy?",
             "What is the capital of France?",
             "What is the capital of England?",
             "What is the capital of Spain?"]

answers = "Rome", "Paris", "London", "Madrid"

counter = 0
c2 = 0
print("Get ready to answer")
t = perpetualTimer(3, printer)
t.start()

output:

Get ready to answer
>>> 
-What is the capital of Italy?
It is Rome

-What is the capital of France?
It is Paris

-What is the capital of England?
...

Bạn có thể sử dụng đối tượng luồng hẹn giờ trong Python thông qua lớp Threading.Timer.timer thread object in Python via the threading.Timer class.

Trong hướng dẫn này, bạn sẽ khám phá cách sử dụng đối tượng hẹn giờ chủ đề trong Python.

Bắt đầu nào.

  • Cần một luồng hẹn giờ
  • Cách sử dụng luồng hẹn giờ
  • Ví dụ về việc sử dụng luồng hẹn giờ
  • Ví dụ về việc hủy luồng hẹn giờ
  • Đọc thêm
  • Takeaways

Cần một luồng hẹn giờ

Cách sử dụng luồng hẹn giờ

Ví dụ về việc sử dụng luồng hẹn giờ

Ví dụ về việc hủy luồng hẹn giờ

Một chủ đề là một chủ đề thực thi trong một chương trình máy tính.threading.Thread class.

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.

Bạn có thể tìm hiểu thêm về các chủ đề Python trong Guude:

Chủ đề trong Python: Hướng dẫn hoàn chỉnh

Cách sử dụng luồng hẹn giờ

Ví dụ về việc sử dụng luồng hẹn giờthreading.Timer class.

Ví dụ về việc hủy luồng hẹn giờthreading.Timer is an extension of the threading.Thread class, meaning that we can use it just like a normal thread instance.

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...

Bạn có thể tìm hiểu thêm về các chủ đề Python trong Guude:

timer=Timer(10,task,args=(arg1,arg2))=Timer(10,task,args=(arg1,arg2))

Chủ đề trong Python: Hướng dẫn hoàn chỉnh

Đôi khi trong lập trình đồng thời, chúng tôi có thể muốn một chủ đề bắt đầu thực thi mã của chúng tôi sau khi giới hạn thời gian hết hạn.start() function which will begin the timer.

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:

timer.start().start()

Chủ đề trong Python: Hướng dẫn hoàn chỉnhcancel() function.

Đô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...

Bạn có thể tìm hiểu thêm về các chủ đề Python trong Guude:

timer.cancel().cancel()

Chủ đề trong Python: Hướng dẫn hoàn chỉnh

Đôi khi trong lập trình đồng thời, chúng tôi có thể muốn một chủ đề bắt đầu thực thi mã của chúng tôi sau khi giới hạn thời gian hết hạn.threading.Timer thread, let’s look at some worked examples.

Điều này có thể đạt được bằng cách sử dụng một luồng hẹn giờ.
Download my FREE PDF cheat sheet

Ví dụ về việc sử dụng luồng hẹn giờ

Ví dụ về việc hủy luồng hẹn giờthreading.Timer object with a worked example.

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.task(message):

& nbsp; & nbsp; & nbsp; & nbsp;# báo cáo tin nhắn tùy chỉnh# report the custom message

    print(message)print(message)

Bạn có thể tìm hiểu thêm về các chủ đề Python trong Guude:threading.Timer class. We will configure the Timer with a delay of 3 seconds, then call the task() function with a single argument message of ‘Hello world’.

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...

# Tạo đối tượng hẹn giờ chủ đề

hẹn giờ = hẹn giờ (3, nhiệm vụ, args = ('hello world',)))=Timer(3,task,args=('Hello world',))

Bạn có thể tìm hiểu thêm về các chủ đề Python trong Guude:

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ắt đầu đối tượng hẹn giờ

timer.start().start()

Bạn có thể tìm hiểu thêm về các chủ đề Python trong Guude:

.....

# Chờ bộ hẹn giờ kết thúc

In ('Đang chờ bộ đếm thời gian ...')('Waiting for the timer...')

Tying này lại với nhau, ví dụ hoàn chỉnh được liệt kê dưới đây.

# SuperfastPython.com

# Ví dụ về việc sử dụng đối tượng hẹn giờ luồng

từ bộ đếm thời gian nhập luồngthreading import Timer

# chức năng tác vụ mục tiêu

nhiệm vụ def (tin nhắn):task(message):

& nbsp; & nbsp; & nbsp; & nbsp;# báo cáo tin nhắn tùy chỉnh# report the custom message

    print(message)print(message)

# Tạo đối tượng hẹn giờ chủ đề

hẹn giờ = hẹn giờ (3, nhiệm vụ, args = ('hello world',)))=Timer(3,task,args=('Hello world',))

# Bắt đầu đối tượng hẹn giờ

timer.start().start()

# Chờ bộ hẹn giờ kết thúc

In ('Đang chờ bộ đếm thời gian ...')('Waiting for the timer...')

Tying này lại với nhau, ví dụ hoàn chỉnh được liệt kê dưới đây.threading.Timer object and specifies the target task() function with a single argument.

# SuperfastPython.com

# Ví dụ về việc sử dụng đối tượng hẹn giờ luồngtask() function reporting the custom message.

từ bộ đếm thời gian nhập luồng

# chức năng tác vụ mục tiêu

nhiệm vụ def (tin nhắn):


& nbsp; & nbsp; & nbsp; & nbsp;# báo cáo tin nhắn tùy chỉnh

# Tạo đối tượng hẹn giờ chủ đề

hẹn giờ = hẹn giờ (3, nhiệm vụ, args = ('hello world',)))

# Bắt đầu đối tượng hẹn giờ
 


Chạy ví dụ trước tiên tạo đối tượng luồng.Timer và chỉ định hàm Target Task () với một đối số duy nhất.

Bộ hẹn giờ sau đó được bắt đầu và luồng chính chờ luồng hẹn giờ kết thúc.

Chủ đề hẹn giờ chạy, chờ 3 giây được định cấu hình, sau đó thực thi hàm Task () báo cáo thông báo tùy chỉnh.

Chờ bộ hẹn giờ ...cancel() function on the threading.Timer thread instance after the timer has been started.

.....

Chào thế giới

Tiếp theo, hãy để Lôi nhìn vào cách chúng ta có thể hủy một đối tượng luồng hẹn giờ.('Canceling the timer...')

timer.cancel().cancel()

Tying này lại với nhau, ví dụ hoàn chỉnh được liệt kê dưới đây.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

# SuperfastPython.com

# Ví dụ về việc sử dụng đối tượng hẹn giờ luồng

từ bộ đếm thời gian nhập luồngtime import sleep

từ bộ đếm thời gian nhập luồngthreading import Timer

# chức năng tác vụ mục tiêu

nhiệm vụ def (tin nhắn):task(message):

& nbsp; & nbsp; & nbsp; & nbsp;# báo cáo tin nhắn tùy chỉnh# report the custom message

    print(message)print(message)

# Tạo đối tượng hẹn giờ chủ đề

hẹn giờ = hẹn giờ (3, nhiệm vụ, args = ('hello world',)))=Timer(3,task,args=('Hello world',))

# Bắt đầu đối tượng hẹn giờ

timer.start().start()

Chạy ví dụ trước tiên tạo đối tượng luồng.Timer và chỉ định hàm Target Task () với một đối số duy nhất.

sleep(1)(1)

Chào thế giới

Tiếp theo, hãy để Lôi nhìn vào cách chúng ta có thể hủy một đối tượng luồng hẹn giờ.('Canceling the timer...')

timer.cancel().cancel()

Khóa học luồng python miễn phítask() function to trigger in 3 seconds.

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.task() function from executing and the message from being reported.

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 hủy luồng hẹn giờ

  • Trong phần này, chúng ta có thể khám phá cách hủy một luồng hẹn giờ trước khi nó được kích hoạt.

Ví dụ trong phần trước có thể được cập nhật để hủy bộ hẹn giờ và đảm bảo chức năng tác vụ đích không được thực thi.

  • Điều này có thể đạt được bằng cách gọi hàm hủy () trên phiên bản luồng của rening.Timer sau khi bộ hẹn giờ được bắt đầu.

# Hủy luồng

  • in ('Hủy bộ đếm thời gian ...')
  • từ thời gian nhập vào giấc ngủ
  • # Khối trong giây látmy book!). 

Chạy ví dụ bắt đầu luồng hẹn giờ với hàm Target Task () để kích hoạt trong 3 giây.

  • Chủ đề chính chờ một giây, sau đó hủy luồng hẹn giờ, ngăn hàm thực hiện nhiệm vụ () thực thi và thông báo không được báo cáo.
    • Đọc thêm
  • Phần này cung cấp các tài nguyên bổ sung mà bạn có thể thấy hữu ích.
    • API
  • Chủ đề - song song dựa trên luồng
    • Hướng dẫn

Python Threading: Hướng dẫn hoàn chỉnh

Sáchthreading.Timer object in Python.

Bảng xác định API mô -đun chủ đề
Ask your questions in the comments below and I will do my best to answer.

Chủ đề câu hỏi phỏng vấn API