Sự kiện luồng trong Python là gì?

def lịch_script[script_in, x, y]. chủ đề toàn cầu global to_run coords chạy toàn cầu = "[" + str[x] + ", " + str[y] + "]" if thread[x][y]. = Không có. nếu chủ đề [x] [y]. is_alive[]. print["[scripts] " + coords + " Script đã chạy, tắt script. "] chủ đề [x] [y]. giết chết. set[] trả về nếu [x, y] trong [l[1. ] cho l vào to_run]. print["[scripts] " + coords + " Script đã được lên lịch, đang hủy lịch. "] indexes = [i for i, v in enumerate[to_run] if [[v[1] == x] and [v[2] == y]]] for index in indexes[. -1]. tạm thời = to_run. pop[index] trả về nếu script_in. tách["\n"][0]. tách [" "][0] trong ASYNC_HEADERS. print["[scripts] " + coords +" Bắt đầu tập lệnh không đồng bộ ở chế độ nền. "] chủ đề [x] [y] = luồng. Chủ đề[đích=run_script, args=[script_in,x,y]] chủ đề[x][y]. giết = luồng. chủ đề sự kiện[][x][y]. start[] elif không chạy. print["[scripts] " + coords + " Không có tập lệnh nào đang chạy, bắt đầu tập lệnh ở chế độ nền. "] chủ đề [x] [y] = luồng. Chủ đề[đích=run_script_and_run_next, args=[script_in,x,y]] chủ đề[x][y]. giết = luồng. chủ đề sự kiện[][x][y]. bắt đầu[] khác. print["[scripts] " + coords + " Một script đang chạy, lập lịch trình. "] chạy. nối thêm [[script_in, x, y]] lp_colors. cập nhậtXY[x, y]

Ở đây chúng ta sẽ bắt đầu từ những điều cơ bản về giao tiếp giữa các luồng là gì? . Nói một cách đơn giản, đôi khi một luồng có thể được yêu cầu giao tiếp với luồng khác tùy thuộc vào yêu cầu. Đây được coi là Giao tiếp giữa các luồng.  

Phương thức sự kiện []. Ở đây chúng ta nói về phương thức Event[], đối tượng Event được xem xét hoặc khuyến nghị là quy trình hoặc hệ thống giao tiếp đơn giản nhất giữa bất kỳ luồng nào. Hệ thống này hoạt động trên hai điều kiện trong đó đối tượng Sự kiện được bật có nghĩa là đặt[] hoặc tắt có nghĩa là xóa[].  

cú pháp

event_object = luồng. Biến cố[]

Trong Sự kiện nội bộ quản lý quy trình sẽ hoạt động nội bộ và nó có thể được Đặt [đã bật] hoặc Xóa [đã tắt] bằng cách sử dụng các phương thức trên đối tượng sự kiện. Nếu các luồng được Đặt thì tất cả các luồng sẽ được thực thi nhưng nếu các luồng được Xóa thì nhìn chung tất cả các luồng sẽ chờ thực thi

Ví dụ

Chúng tôi lấy một ví dụ để giải thích cách sử dụng phương thức sự kiện trong việc triển khai giao tiếp giữa các luồng

Python3




#import modules

import threading

import time

 

if __name__== '__main__'import0

 

import1import2

import1import4= import6

 

import7

import8 import9

threading0

import1threading2____23threading4threading5

import1threading7= threading9import0threading5

import1

import1if import5

import6threading2____23import9threading5

import1time2import0

import6threading2____23time7threading5

 

 

time9

if0= if2=if4

 

if5

if6

 

if7____58____25

__name__0__name__1__name__2

threading2______23__name__5threading5

đầu ra

Trong chương trình sau đây, trong đó chúng ta tạo đối tượng sự kiện, sau đó chúng ta tạo một luồng và khởi động nó, bây giờ luồng được đặt đối tượng sự kiện bằng phương thức set[] và trong hàm task[] nơi luồng đang chờ

Dưới đây là một số phương thức chung được sử dụng trong lớp Sự kiện. -

  • rõ ràng[] Phương pháp. Phương thức này hoàn toàn ngược lại với phương thức set[], nhưng phương thức này cũng hoạt động như một công cụ thay đổi điều kiện nếu điều kiện trở thành Sai thì luồng nào không chạy hoặc đang chờ, vì vậy chúng vẫn đang ở trạng thái chờ và không
  • phương pháp thiết lập [ ]. Trong phương thức set[], chúng tôi đã sử dụng nó như một công cụ thay đổi điều kiện giữa các luồng trong đó nếu điều kiện đúng thì có nhiều luồng đang chờ trạng thái mà chúng sẽ tiếp tục thực thi
  • Phương thức isSet[]. Phương thức isSet[] này có ý nghĩa như tên gọi của chúng là được đặt, phương thức này đơn giản hóa rằng sự kiện sau mà chúng ta đã tạo được đặt hay không được đặt
  • đợi [thời gian] Phương thức. Để mô tả phương thức wait[] bằng những từ đơn giản, chúng ta có thể nói rằng luồng đợi cho đến khi việc thực thi phương thức set[] chưa hoàn thành. Chúng ta có thể sử dụng thời gian trong đó nếu chúng ta đặt một thời gian nhất định thì quá trình thực thi sẽ dừng lại cho đến khi hết thời gian sau đó nó sẽ vẫn thực thi set[] của một sự kiện vẫn còn

Ở đây chúng tôi sẽ lấy một ví dụ đơn giản để giải thích cách các phương pháp trên được sử dụng trong toàn bộ chương trình

Python3




__name__7

import time

 

=0

import threading

 

=3 =4

threading0

threading0import8 =8=9=0

import1threading2____23=4=5

import1threading2____23=9threading5

import1'__main__'2

import1threading2____23'__main__'6'__main__'7

threading0

threading0____18 import01=9import03

import1if7import06threading5

import1threading2____23import11import12

import1threading2____23import16threading5

import1import19

import1

threading0import8 import23=9=0

import1if7import28threading5

import1threading2____23import33threading5

import1__name__0__name__1__name__2

import39

 

import40

import41= import43

 

import44

if __name__=='__main__'import0

threading0____14= import6

 

import55

import56= if2=import60

import61= if2______7import65

import66= if2____7import70

 

import71

import72

import73

import74

đầu ra

Đây là một ví dụ đơn giản để giải thích việc sử dụng lớp event[] và các phương thức của chúng trong giao tiếp giữa các luồng. Ở đây chúng tôi sử dụng một ví dụ về người mua-người bán và người bán lẻ, đầu tiên, chúng tôi nhập hai mô-đun là mô-đun luồng và mô-đun thời gian, sau đó chúng tôi tạo một sản phẩm lớp trong đó có chức năng đầu tiên là người mua [] có một số . Ở luồng T3 đầu tiên sẽ thực thi chức năng retail[] nhưng T3 sẽ đợi 10 giây vì bộ đếm thời gian sau T2 này sẽ thực thi nhưng ở đây T2 cũng phải đợi 5 giây, sau đó T1 sẽ chạy . Bây giờ là lúc luồng T3 trong phương thức set[] này được gọi để giải phóng tất cả luồng đang chờ khỏi trạng thái chờ và các luồng như T2 và T1 tiếp tục thực thi

sự kiện chủ đề là gì?

Luồng gửi sự kiện [EDT] là một luồng nền được sử dụng trong Java để xử lý các sự kiện từ hàng đợi sự kiện giao diện người dùng đồ họa của Bộ công cụ cửa sổ trừu tượng [AWT].

Làm thế nào là luồng được thực hiện trong Python?

Trong mô-đun luồng, để chạy hoặc thực thi luồng, bạn sử dụng phương thức start[], phương thức này chỉ chịu trách nhiệm chạy luồng. You will also use the join method, which means that wait until all the thread execution is complete.

Mô-đun luồng trong Python là gì?

Mô-đun luồng. Phương thức này bắt đầu một luồng mới và trả về mã định danh của nó . Chuỗi thực thi hàm "hàm" [hàm là tham chiếu đến hàm] với danh sách đối số args [phải là danh sách hoặc bộ dữ liệu]. Đối số kwargs tùy chọn chỉ định một từ điển các đối số từ khóa.

Luồng và đa luồng trong Python là gì?

Đa luồng là một kỹ thuật phân luồng trong lập trình Python để chạy nhiều luồng đồng thời bằng cách chuyển đổi nhanh chóng giữa các luồng với sự trợ giúp của CPU [được gọi là chuyển ngữ cảnh].

Chủ Đề