当前位置: 首页 > news >正文

什么网站可以免费发广告网站建设服务专业建站公司

什么网站可以免费发广告,网站建设服务专业建站公司,四川网站建设设计公司,传奇网站怎么建设需求:在Python-主线程控制子线程-3的基础上,新增使用UDP接收指令功能,代替从键盘输入指令 # 修改后的程序,主线程可以获取子线程的结果 import threading import time import queue import tracebackfrom loguru import logger i…

需求:在Python-主线程控制子线程-3的基础上,新增使用UDP接收指令功能,代替从键盘输入指令

# 修改后的程序,主线程可以获取子线程的结果
import threading
import time
import queue
import tracebackfrom loguru import logger
import socketclass WorkerThread(threading.Thread):def __init__(self, result_queue):super().__init__()self.stop_event = threading.Event()self.result_queue = result_queuestatic_variable = 0def run(self):thread_id = threading.get_ident()print(f"Worker thread {thread_id} has started.")while not self.stop_event.is_set():print(f"Worker thread {thread_id} is running.")result = self.do_work()self.result_queue.put(result)time.sleep(1)print(f"Worker thread {thread_id} has stopped.")def increment_static_variable(cls):cls.static_variable += 1def do_work(self):  # Simulate some work# self.increment_static_variable()self.static_variable += 1return self.static_variabledef stop(self):self.stop_event.set()self.join()  # 等待子线程结束class KeyListener:def __init__(self, result_queue_listener):self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)self.address = ("127.0.0.1", 12580)self.server_socket.bind(self.address)self.stop_event = threading.Event()self.result_queue_listener = result_queue_listenerdef udp_recv(self):while not self.stop_event.is_set():try:receive_dat, client_address = self.server_socket.recvfrom(1024)command = receive_dat.decode()print(command)self.result_queue_listener.put(command)except socket.error:# This will be triggered when the socket is closedpassdef start(self):keyboard_thread = threading.Thread(target=self.udp_recv)  # 创建键盘输入监听线程keyboard_thread.start()logger.info(f"Keyboard monitor thread {keyboard_thread.ident} has started~")def stop(self):self.stop_event.set()self.server_socket.close()def end_child_thread():try:if worker_thread.is_alive():worker_thread.stop()logger.info(f"Stopping worker thread {worker_thread.ident}...")if worker_thread.is_alive():logger.info(f"Worker thread {worker_thread.ident} is still active")else:logger.info(f"Worker thread {worker_thread.ident} doesn't exist ..")except Exception as e:logger.info("中止线程失败:" + e)if __name__ == '__main__':result_queue = queue.Queue()result_queue_listener = queue.Queue()main_thread_id = threading.main_thread().identlogger.info(f"Main thread {main_thread_id} has started~")worker_thread = WorkerThread(result_queue)worker_thread.start()logger.info(f"worker thread {worker_thread.ident} has started~")key_listener = KeyListener(result_queue_listener)key_listener.start()exit_program = Falsetry:while not exit_program:if not result_queue_listener.empty():command = result_queue_listener.get()if command == '0':logger.info(f"工作线程状态{worker_thread}")end_child_thread()logger.info(f"工作线程状态{worker_thread}")elif command == '1':try:if worker_thread.is_alive():passelse:worker_thread = WorkerThread(result_queue)worker_thread.start()logger.info(f"Started new worker thread {worker_thread.ident}")except Exception as e:logger.info("新建工作线程失败:" + e)elif command == '2':end_child_thread()key_listener.stop()print(f"停止工作线程{worker_thread}")print(f"停止监听线程{key_listener}")exit_program = Truebreakelse:passtime.sleep(0.1)if not result_queue.empty():result = result_queue.get()print("主线程获取的子线程结果:", result)else:passexcept Exception as e:print("Exception caught:", e)traceback.print_exc()  # 打印详细的异常堆栈信息end_child_thread()key_listener.stop()print(f"except工作线程{worker_thread}")print(f"except监听线程{key_listener}")# 主线程退出logger.info(f"Main thread {main_thread_id} is exiting~")

使用网络调试助手向程序发送指令,运行效果如下:

 

http://www.yayakq.cn/news/854884/

相关文章:

  • 如何开发微信网站南京做电商网站的公司
  • 微网站设计wordpress提示ftp
  • 北京网站设计公司哪儿济南兴田德润简介产品是做网站
  • 滨海新区网站建设wordpress侧边栏文件
  • 招代理商的网站重庆网红景点排名
  • php做网站图集网站每天1万ip能收入多少
  • 域名做非法网站网页设计模板素材代码
  • 做抖音风的网站南昌网站建设赣icp南昌
  • 网站数据中心的建设网站开发时ie11的兼容
  • 做类似淘宝一样的网站中国建设银行招聘官方网站
  • 网站建设拟解决问题网站右边跳出的广告怎么做
  • 网站建设的要求网站别人给我做的备案 我能更改吗
  • 中国哪家做网站的公司最大注册一个公司需要花多少钱
  • 电子商务网站建设有什么认识seo网络营销的技术
  • 网站首页制作方案展示类网站cms
  • 自己能够做投票网站吗纯php网站开发的网站
  • 建设企业网站登录901wordpress如何导出数据库
  • 如何判断网站是否被kwordpress 固定连接插件
  • html5开发微网站wix做的网站
  • 织梦如何做几种语言的网站烟台开发区人才网招聘信息
  • 网站建设企业网站价格成都网络推广优化
  • 网站开发流程图和介绍网络传媒有限公司
  • 后台网站更新 网站没显示cpa做电影网站侵权吗
  • 一个专门做特卖的网站网页浏览器软件
  • 本地赣州网站建设手机绘图app软件下载
  • 网站职业技能培训班装企营销网站建设
  • 托管网站服务器美容行业培训网站建设
  • 淘宝联盟登记新网站游戏网站平台大全游戏网
  • 南充网站建设略奥网络wordpress 微信编辑器
  • 杭州网站设计深圳方维网络科技有限公司