代码拉取完成,页面将自动刷新
同步操作将从 郑一天/tcp_over_udp 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import threading
from tornado.locks import Event
from tornado.ioloop import IOLoop
from tornado import gen
from helpFunc import *
import time
class ts():
def __init__(self,ioloop):
self.ioloop = ioloop
self.rEvent = Event()
self.wEvent = Event()
self.writeLock = threading.Lock()
self.readLock = threading.Lock()
self.writeBuffer = b''
self.readBuffer = b''
IOLoop.current().add_callback(self.doRead)
IOLoop.current().add_callback(self.doWrite)
@gen.coroutine
def doRead(self):
co = 0
while True:
yield self.rEvent.wait()
self.rEvent.clear()
while True:
msg = TOUMsg()
self.readLock.acquire()
r,self.readBuffer = msg.unpack(self.readBuffer)
self.readLock.release()
if not r:
break
co += 1
if co%10==0:
print ('co1',co,getRunningTime())
@gen.coroutine
def doWrite(self):
co = 0
while True:
yield self.wEvent.wait()
self.wEvent.clear()
while True:
if len(self.writeBuffer)>con_streamBufferSize:
break
yield gen.sleep(random.randint(3,20)/10.0)
msg = TOUMsg({},b's'*random.randint(10,2000))
self.writeLock.acquire()
self.writeBuffer += msg.pack()
self.writeLock.release()
co += 1
if co%10==0:
print ('co2',co,getRunningTime())
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。