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
- Cách thực hiện bộ hẹn giờ luồng trong Python
- Mục lục
- điều kiện tiên quyết
- Chức năng hẹn giờ Python
- Ví dụ #1
- Trường hợp #2
- Tổng quan về mô-đun luồng
- Tạo và sử dụng lớp hẹn giờ
- Làm việc với Python Decorator
- Tầm quan trọng của việc sử dụng Chủ đề
- Phần kết luận
đ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ị đầu ra là
SECTION FOR LIFE
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 dừng cancel[]
mà chúng ta đã thấy trước đó để kết thúc một luồng
##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