使用socket+gevent實現協程併發
使用協程庫來實現簡單併發
"""
協程實現併發.
"""
import gevent
from gevent import monkey
import socket
# just like of setBlocking(False)
monkey.patch_socket() # 讓內建socket封裝為IO多路複用的 socket, 實現了accept不阻塞.
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((socket.gethostbyname(socket.gethostname()), 4444))
server.listen(5)
def work(cnn):
while True:
data = cnn.recv(1024)
if data:
print(data)
else:
cnn.close()
break
if __name__ == '__main__':
while True:
cnn, addr = server.accept()
print("aasdas")
gr = gevent.spawn(work, cnn) # 建立多個協程來服務多client
相關文章
- Go 併發 -- 協程Go
- 學習之路 / goroutine 併發協程池設計及實現Go
- PHP協程:併發 shell_execPHP
- 併發技術2:多協程
- Golang協程併發的流水線模型Golang模型
- Go 併發程式設計 - runtime 協程排程(三)Go程式設計
- Phxrpc協程庫實現RPC
- python教程:使用 async 和 await 協程進行併發程式設計PythonAI程式設計
- golang實現併發爬蟲三(用佇列排程器實現)Golang爬蟲佇列
- Golang協程池(workpool)實現Golang
- 5. 併發神奇——協程 |《 刻意學習 Golang 》Golang
- 愛奇藝網路協程編寫高併發應用實踐
- 基於協程的高效能高併發伺服器框架—協程模組伺服器框架
- 跟羽夏去實現協程
- 在 Android 開發中使用 Kotlin 協程 (一) -- 初識 Kotlin 協程AndroidKotlin
- 使用併發工具實現 RPC 呼叫流量控制RPC
- Go - 使用 sync.WaitGroup 來實現併發操作GoAI
- Android版kotlin協程入門(四):kotlin協程開發實戰AndroidKotlin
- PHP7下的協程實現PHP
- Golang語言goroutine協程併發安全及鎖機制Golang
- 【Golang】淺談協程併發競爭資源問題Golang
- 使用 Swift 實現歸併排序Swift排序
- Go多協程併發環境下的錯誤處理Go
- 協程必知必會-系列3-批次併發執行
- 協程實現canvas影像隨機閃爍Canvas隨機
- python網路-多工實現之協程Python
- curl_multi實現併發
- 執行緒,程式,協程, 併發,並行,同步,非同步概念解析執行緒並行非同步
- 併發要理解的程式、執行緒、協程,附併發程式設計72道面試題答案執行緒程式設計面試題
- 併發Lock之ReentrantLock實現原理ReentrantLock
- java併發之SynchronousQueue實現原理Java
- 在Go中如何實現併發Go
- Redis實現併發阻塞鎖方案Redis
- Java 併發程式設計:ThreadLocal 的使用及其原始碼實現Java程式設計thread原始碼
- 使用 Airtest 實現多臺 IOS 真機的併發測試AIiOS
- Python_非同步程式設計-併發程式設計-協程和futurePython非同步程式設計
- golang併發channel使用sync.WaitGroup保證所有協程結束並處理額外業務GolangAI
- 協程的簡單使用