# 單程序-單執行緒-非阻塞實現併發
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...