代码拉取完成,页面将自动刷新
import multiprocessing
import multiprocessing.connection
import threading
import queue
import time
import os
# from process_server import *
# 工作线程
class ThreadWork:
#q: 通信队列
#args: 传送到服务器上的元组
def __init__(self, q, args):
self.args = args
self.q = q
self.go = True # 线程退出标识
self.errorCount = 0 # 出错计数
#终止线程
def terminate(self):
self.go = False
#线程函数
def run(self):
while self.go:
try:
#创建客户端,返回一个 Connection
conn = multiprocessing.connection.Client(('127.0.0.1',15000), authkey=b"12345")
conn.send(self.args)
while self.go:
if conn.poll():
data = conn.recv()
conn.close() #关闭通讯
self.q.put(data)
break
break
except multiprocessing.AuthenticationError: #身份验证失败
break
except ConnectionRefusedError: #[WinError 10061] 由于目标计算机积极拒绝,无法连接。
self.errorCount += 1
if self.errorCount < 20:
continue
break
#消费者线程
class ThreadConsumer:
def __init__(self):
self.q = queue.Queue()
self.go = object() #线程退出哨兵
#终止线程
def terminate(self):
self.q.put(self.go)
#线程函数
def run(self):
while True:
txt = self.q.get(block=True)
if txt is self.go:
return
print(txt)
if __name__ == "__main__":
tc = ThreadConsumer()
threading.Thread(target=tc.run, daemon=True).start()
for i in range(10000):
while True:
try:
tw = ThreadWork(q=tc.q, args=(i,i))
threading.Thread(target=tw.run, daemon=True).start()
break
except RuntimeError:
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
pass
input()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。