国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python手動或自動協(xié)程操作方法解析

Python手動或自動協(xié)程操作方法解析

2020-06-22 11:37wztshine Python

這篇文章主要介紹了Python手動或自動協(xié)程操作方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1.手動協(xié)程操作:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# pip install gevent
from greenlet import greenlet
 
def test():
  print('He ')
  gr2.switch() # 切換到test2
  print('a ')
  gr2.switch()
 
def test2():
  print('is ')
  gr1.switch()
  print('student.')
 
gr1 = greenlet(test)  # 創(chuàng)建一個協(xié)程
gr2 = greenlet(test2)
gr1.switch()  # 切換到gr1,也就是運行它

2. 自動協(xié)程,遇到I/O自動切換

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import gevent
from gevent import monkey; monkey.patch_all()  # 導入monkey,給所有支持的模塊打上補丁,變成非阻塞模塊,也就是使其能夠進行協(xié)程操作
def test1(n):
  print("I'm doing my homework.")
  gevent.sleep(n)     # 模擬I/O操作,gevent自動切換
  print('Keep doing my homework.')
 
def test2(n):
  print("I have no time to watch TV.")
  gevent.sleep(n)
  print('Stop thinking!')
 
def test3():
  print("Life is hard.")
 
# 等待 greenlets 全部結(jié)束
gevent.joinall([
  gevent.spawn(test1,3), # 創(chuàng)建一個新的greeenlet對象,并規(guī)劃它去執(zhí)行 test1(3)
  gevent.spawn(test2,1),
  gevent.spawn(test3),
])

結(jié)果:

I'm doing my homework.
I have no time to watch TV.
Life is hard.
Stop thinking!
Keep doing my homework.

3. socket 協(xié)程實例:

服務(wù)器:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import socket
import gevent
from gevent import monkey
monkey.patch_all()  # 打補丁,讓所有支持的模塊變成非阻塞的方法
 
def server(ip,port):
  s = socket.socket()  # 生成socket對象
  s.bind((ip, port))  # 綁定ip和端口
  s.listen()      # 設(shè)置監(jiān)聽
  while True:
    cli, addr = s.accept()       # 等待連接
    gevent.spawn(handle_request, cli)  # 對每一個連接,使用協(xié)程的方法生成greenlet
 
def handle_request(conn):
  try:
    while True:
      data = conn.recv(1024# 接收數(shù)據(jù)
      print("recv:", data)
      new = 'Hello '+ data.decode().title()
      conn.send(new.encode('utf8'))      # 返回數(shù)據(jù)
      if not data:
        conn.shutdown(socket.SHUT_WR)
  except Exception as e:
    print(e)
  finally:
    conn.close()
if __name__ == '__main__':
  server('localhost',9999)

客戶端:

?
1
2
3
4
5
6
7
8
9
10
import socket
client = socket.socket()
client.connect(('localhost',9999))
while True:
  con = input('>>>:').strip()
  if len(con) ==0: continue
  client.send(con.encode('utf-8'))
  data = client.recv(1024)
  print(data.decode())
client.close()

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://www.cnblogs.com/wztshine/p/12054120.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人av一区二区三区 | 91精品国产色综合久久 | 欧美电影网站 | 视色影院 | 欧美影 | 国产精品久久久久久久久久久久久 | 成人免费视频网址 | 糈精国产xxxx在线观看 | 自拍偷拍在线视频 | 欧美精品一区二区三区一线天视频 | 久久精品亚洲 | 黄色毛片儿 | 91短视频版在线观看www免费 | 亚洲在线 | 久久久亚洲国产美女国产盗摄 | 一区二区欧美视频 | 欧美日韩国产一区二区三区不卡 | 国产精品色哟哟哟 | 久久久久网站 | 亚洲午夜精品视频 | 中文在线视频 | 婷婷亚洲五月 | 精品视频第一页 | 成人激情毛片 | 亚洲精品国精品久久99热 | 黄色三级免费片 | 国产一区二区三区四区 | 精品九色| 国产精品视频一二三区 | 黄色免费看片网站 | 黑森林av凹凸导航 | 亚洲一区二区三区免费 | 精品一区二区三区成人精品 | 国产在线a| 在线观看a毛片 | 亚洲三级在线 | 国产精品免费一区二区三区四区 | av一区二区在线观看 | 国产日韩久久 | 视频一区二区三区中文字幕 | 亚洲日日摸夜夜夜夜夜爽小说 |