python事件迴圈 如何實現基本事件迴圈?

2021-10-17 00:15:20 字數 1133 閱讀 3732

python:

您可以檢視twisted reactor的實現,它可能是python中事件迴圈的最佳實現。twisted中的reactor是介面的實現,您可以指定要執行的reactor型別:select、epoll、kqueue(都基於使用這些系統呼叫的c api),還有基於qt和gtk工具包的reactor。

乙個簡單的實現方法是使用select:#echo server that accepts multiple client connections without forking threads

import select

import socket

import sys

host = ''

port = 50000

backlog = 5

size = 1024

server = socket.socket(socket.af_inet, socket.sock_stream)

server.bind((host,port))

server.listen(backlog)

input = [server,sys.stdin]

running = 1

#the eventloop running

while running:

inputready,outputready,exceptready = select.select(input,,)

for s in inputready:

if s == server:

# handle the server socket

client, address = server.accept()

elif s == sys.stdin:

# handle standard input

junk = sys.stdin.readline()

running = 0

else:

# handle all other sockets

data = s.recv(size)

if data:

s.send(data)

else:

s.close()

input.remove(s)

server.close()

python 結束迴圈事件 如何終止事件迴圈

首先,您不需要啟動任何事件迴圈。package提供對執行器的直接訪問,threading允許您啟動單個執行緒 raw thread import threading background task threading.thread target update contacts,kwargs loop...

python迴圈五要素 Python語言基礎

本文主要向大家介紹了python語言基礎,通過具體的內容向大家展示,希望對大家學習python語言有所幫助。python基礎 一 程式語言分類 機器語言 組合語言 高階語言 高階語言又分為編譯型和解釋型語言。而python就屬於解釋型語言。這些語言從上到下的特點 執行效率變低,開發效率變高,學習難度...

技巧篇 如何重寫基類的事件

先說說需求,也就是我們要達到的效果,希望擴充套件按鈕控制項,增加一些屬性,但同時我們希望預設事件仍使用click事件,不過,在事件引數中,我們希望能夠傳遞更多的資訊,而不是button.click預設的引數。當然,我們首先要寫乙個自定義的事件引數,為了簡單起見,我們的自定義按鈕控制項,增加乙個tag...