Слияние кода завершено, страница обновится автоматически
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())
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )