Cách tạm dừng bộ hẹn giờ trong Python

Luồng cho phép nhiều tác vụ chạy đồng thời. Ví dụ, khi tác vụ A đang chạy, tôi không phải đợi nó hoàn thành. Trong khi đó, nhiệm vụ B, C cũng sẽ được chạy. Khi các tác vụ đang chạy đồng thời, chúng yêu cầu nhiều CPU

Để chạy các luồng đồng thời, Python sử dụng một kỹ thuật được gọi là chuyển đổi tác vụ. Kết quả là Python chuyển đổi nhanh chóng giữa từng tác vụ. Làm cho có vẻ như nhiều tác vụ đang chạy song song, làm cho nó hữu ích trong các tác vụ hướng sự kiện. Chủ đề nhẹ, nó yêu cầu ít bộ nhớ hơn do đó tiết kiệm tài nguyên CPU

Cách thực hiện bộ hẹn giờ luồng trong Python

Một luồng có một mục nhập, một thực thi và một điểm thoát. Thư viện Python chứa một bộ đếm thời gian, một lớp con của lớp “luồng” được sử dụng để thực thi mã sau một khoảng thời gian giới hạn

Luồng trong Python Timer[] bắt đầu sau độ trễ được xác định là đối số. Do đó, lớp Timer gọi chính nó trì hoãn việc thực hiện thao tác sau trong cùng một khoảng thời gian được chỉ định

Mục lục

điều kiện tiên quyết

Để làm theo, người đọc sẽ cần những điều sau đây

  • Một số kiến ​​thức cơ bản về Python. Bạn có thể tham khảo bài viết này hướng dẫn người mới bắt đầu với python để bắt đầu với Python

Chức năng hẹn giờ Python

Sau mỗi số giây được chỉ định, hàm lớp hẹn giờ được gọi. start[] là một chức năng được sử dụng để khởi tạo bộ đếm thời gian. Để kết thúc hoặc thoát bộ đếm thời gian, người ta phải sử dụng hàm hủy []. Nhập lớp luồng là cần thiết để một người sử dụng lớp luồng. Chuỗi cuộc gọi có thể bị treo trong vài giây bằng cách sử dụng thời gian chức năng. ngủ [giây]

  • Để hiểu rõ hơn về điều này, tôi sẽ minh họa nó bằng cách sử dụng một đoạn mã và cả thông báo đầu ra dự kiến ​​của một ảnh chụp màn hình

trường hợp 1

## How class threading.Timer[] in python works  
import threading as th  
## Defining a method  
def sctn[]:  
   print["SECTION FOR LIFE \n"]  
S = th.Timer[5.0, sctn]  
S.start[]  
print["Exit Program\n"]

  • Sau khi mã được chạy, phải mất năm phút để hiển thị SECTION FOR LIFE dưới dạng đầu ra

trường hợp 2

Trong ví dụ thứ hai này, tôi sẽ chỉ cho bạn cách triển khai phương thức tạm ngừng cancel[] mà chúng ta đã thấy trước đó để kết thúc chuỗi

##Illustrating the use of cancel[] method in class Timer.  
import threading as th  
## Defining of a method  
def sctn[]:  
    print["SECTION FOR LIFE \n"]  
S = th.Timer[5.0, sctn]  
S.start[]  
print["PROGRAM TERMINATION\n"]  
S.cancel[]

  • Khi chương trình được thực hiện, dòng TERMINATION PROGRAM TERMINATION được hiển thị. Điều này là do đối tượng th. Bộ hẹn giờ bị hủy ngay trước khi nó thực thi chức năng “sctn”
  • Dưới đây là đầu ra của chương trình trên

Tổng quan về mô-đun luồng

Mô-đun luồng mới nhất có trong Python 2 hiện tại. 4 cung cấp hỗ trợ cấp cao hơn và mạnh mẽ hơn cho các luồng so với mô-đun luồng trước đó

Mô-đun luồng hiển thị tất cả các phương thức của mô-đun luồng và cung cấp một số chức năng bổ sung như được mô tả bên dưới

  thread.activeCount[] − Returns how many thread objects are active.
  thread.currentThread[] − Returns how many thread objects in the caller's thread control.
  thread.enumerate[] − Returns an overview list of all thread objects that are currently active.

Tạo và sử dụng lớp hẹn giờ

Cái hay của phân luồng là bạn có thể yêu cầu máy tính thực hiện một tác vụ vào lúc khác hoặc thực hiện đồng thời. Bạn cũng có thể thực thi mã đồng thời trên các luồng khác nhau, làm cho nó cực kỳ mạnh mẽ. Một lớp hẹn giờ luôn chạy trong khoảng thời gian

Lớp Python Timer được sử dụng để thực hiện một thao tác hoặc chạy một hàm sau một khoảng thời gian xác định đã trôi qua. Lớp luồng có một lớp con được gọi là lớp hẹn giờ. Về mặt kỹ thuật, chúng ta sẽ tạo các đối tượng Timer khi chúng ta cần các hành động [phương thức] có giới hạn thời gian, về mặt kỹ thuật

Để sử dụng lớp Timer, trước tiên chúng ta sẽ phải nhập mô-đun thời gian. Tham số args luôn được ưu tiên sử dụng để khai báo các đối số cho các hàm được gọi

##Timers  
##Execute code at timed intervals  
##Imports and Displays  
import time  
from threading import Timer  
def display[msg]:  
    print[msg + ' ' + time.strftime['%H:%M:%S']]  
  
##Basic timer  
def run_once[]:  
    display['run_once:']  
    t=Timer[10,display,['Timeout:']]  
    t.start[]#Here run is called  
run_once[]  
##Runs immediately and once  
print['Waiting.....']  
  
##Lets make our timer run in intervals  
##Put it into a class  
##Making it run until we stop it  
##Just getting crazy.Notice We have multiple timers at once!  
class RepeatTimer[Timer]:  
    def run[self]:  
        while not self.finished.wait[self.interval]:  
            self.function[*self.args,**self.kwargs]  
            print[' ']  
##We are now creating a thread timer and controling it  
timer = RepeatTimer[1,display,['Repeating']]  
timer.start[] #recalling run  
print['Threading started']  
time.sleep[10]#It gets suspended for the given number of seconds  
print['Threading finishing']  
timer.cancel[]

  • Dưới đây là đầu ra

Làm việc với Python Decorator

Khi làm việc với trình trang trí Python, sẽ biết cách mở rộng Bộ hẹn giờ Python để nó được sử dụng lại. Tầm quan trọng của việc sử dụng các bộ trang trí là nó được triển khai một lần và chức năng được hẹn giờ mỗi lần

Chủ Đề