單程序 單執行緒 非阻塞 長鏈結

2021-09-25 16:09:24 字數 1474 閱讀 9165

# 單程序-單執行緒-非阻塞實現併發

import socket

import time

defmain()

: tcp_server_socket = socket.socket(socket.af_inet,socket.sock_stream)

#新建乙個伺服器socket

tcp_server_socket.setsockopt(socket.sol_socket,socket.so_reuseaddr,1)

#解決埠被占用問題

tcp_server_socket.bind((""

,7890))

# 繫結本地埠

tcp_server_socket.setblocking(

false

)# 設定服務端為非阻塞

tcp_server_socket.listen(

128)

# 設定為監聽模式

client_socket_list =

list()

# 新建乙個列表用來儲存客戶端socket

while

true

: time.sleep(

0.5)

#設定傳送請求頻率

try:

new_client_socket,new_addr = tcp_server_socket.accept(

)except exception as ret:

print

("沒有新的客戶端訪問"

)else

:print

("有新的客戶端到來"

) new_client_socket.setblocking(

false

)# 設定新的客戶端為非阻塞

for new_client_socket in client_socket_list:

try:

recv_data = new_client_socket.recv(

1024

).decode(

"utf-8"

)except exception as ret:

print

("客戶端沒有傳送資料"

)else

:if recv_data:

print

(recv_data)

else

: new_client_socket.close(

) client_socket_list.remove(new_client_socket)

print

("客戶端已經關閉"

)if __name__ ==

"__main__"

: main(

)

程序 單執行緒 多執行緒

文章出處 程序 乙個正在執行的程式可以看做乙個程序,例如 正在執行的qq就是乙個程序 程序擁有獨立執行所需要的全部資源 執行緒 程式中獨立執行的 段。例如 接收qq訊息的 乙個程序是由一或多個執行緒組成,程序只負責資源的排程和分配,執行緒才是程式真正的執行單元,負責 的執行。單執行緒每個正在執行的程...

理解單執行緒,非阻塞I O,中介軟體

單執行緒的理解是任務只能單個單個的處理,比如說 1 2 a,2 3 b,3 4 c。單執行緒就是先算出a,再算出b,接著算c。而多執行緒,假如是4執行緒,它就可以同時算出a b c。單執行緒的好處就是易於程式設計,不需要考慮太多狀況,缺點是效率低。多執行緒的好處是效率高,效能高,但並不是所有的運算都...

python實現單執行緒多工非阻塞TCP服務端

coding utf 8 from socket import 1.建立伺服器socket sock socket af inet程式設計客棧,sock stream 2.繫結主機和埠 addr 程式設計客棧 7788 sock.bind addr 3.設定最大監聽數目,併發 sock.listen...