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

手机网站 jquery 特效互联网营销培训平台

手机网站 jquery 特效,互联网营销培训平台,嘉兴做微网站设计,建设银行u盾官方网站首页在上一节,我们讲述了最简单最基础的后线程的建立,现在我们将进行拓展 Flask应用中处理异步事件(后台线程事件循环)的方法(1) 在我们的实际应用当中,我们需要定义三个东西 一个多线程的信号旗&am…

在上一节,我们讲述了最简单最基础的后线程的建立,现在我们将进行拓展
Flask应用中处理异步事件(后台线程+事件循环)的方法(1)
在我们的实际应用当中,我们需要定义三个东西

  1. 一个多线程的信号旗,这里的信号旗指的是多线程编程中一个非常基础且重要的同步工具
    它只有两种状态:
    Clear (清除/未设置): 信号灯是红色的,旗子是放下的。
    Set (设置): 信号灯是绿色的,旗子是举起的。
    当进程调用event.wait(),如果此时事件是 “Clear” 状态(红灯),那么这个线程就会停下来,进入等待状态,被阻塞。

  2. 一个 循环的对象

  3. 一个新线程

接下来在这里我们看到了,有一个target参数,这个就是调用我们的一个说明书

# 1. 创建一个线程同步工具mcp_ready_event = threading.Event()# 2. 创建一个新的 asyncio 事件循环对象background_event_loop = asyncio.new_event_loop()# 3. 创建一个新线程,目标是运行 start_event_loop 函数loop_thread = threading.Thread(target=start_event_loop, args=(background_event_loop, mcp_ready_event),daemon=Truename="name")loop_thread.start() # 启动这个新线程# 4. 主线程在这里暂停,等待后台线程通知logging.info("主线程正在等待 MCP 初始化...")is_ready = mcp_ready_event.wait(timeout=30.0) # 暂停30秒,等待加载

那么我们的说明书怎么写呢?这里举例mcp的连接初始化
初始化这里,无论成功还是失败,初始化流程走完后,调用 .set() 来释放正在 wait() 的主线程。

# ... existing code ...
async def initialize_mcp_connection(ready_event: threading.Event):"""在应用启动时启动MCP服务器并建立一个持久的会话。完成后通过 event 通知主线程。"""# ...try:# 初始化代码except Exception as e:# ... 错误处理 ...finally:logging.info("MCP 初始化过程结束,通知主线程。")ready_event.set() 

初始化完毕之后,我们就进行接下来的开始线程
这里的参数 loop: asyncio.AbstractEventLoop 和 ready_event: threading.Event 是什么意思?
这是一种现代 Python 的语法,叫做 类型提示 (Type Hinting)。它本身不强制任何东西,但它极大地增强了代码的可读性和可维护性,并且能被很多开发工具利用来进行代码检查。

  • loop: asyncio.AbstractEventLoop: 这行代码的意思是,我们期望 loop 这个参数是一个 asyncio.AbstractEventLoop 类型的对象。它告诉任何阅读或调用这个函数的人:“请给我一个 asyncio 的事件循环对象。”
  • ready_event: threading.Event: 同理,这表示我们期望 ready_event 这个参数是一个我们刚才讲的 threading.Event 类型的对象。
def start_event_loop(loop: asyncio.AbstractEventLoop, ready_event: threading.Event):"""在一个线程中启动事件循环,并在启动时安排MCP初始化。"""asyncio.set_event_loop(loop)    loop.create_task(initialize_mcp_connection(ready_event))    logging.info("后台事件循环已启动,MCP 初始化任务已安排。")loop.run_forever()

需要注意这里start_event_loop 函数中的 loop,和主线程中的 background_event_loop,虽然名字不同,但它们指向的是内存中同一个事件循环对象。

最后只需要运行一个专门用于从一个普通线程向一个正在运行 asyncio 事件循环的线程提交任务。

asyncio.run_coroutine_threadsafe(coro, loop):
http://www.yidumall.com/news/88003.html

相关文章:

  • 做网站套路seo工具优化软件
  • 福建公司网站开发福州网站建设方案外包
  • 八大电商平台是哪几家seo的搜索排名影响因素有哪些
  • 做酒的网站名字大全做免费推广的平台
  • 个人政务公开网站建设工作总结手机打开国外网站app
  • 湖南省专业建设公司网站软文推广营销服务平台
  • 高端网站建设 骆南宁白帽seo技术
  • 宝鸡网站建设百度网站优化工具
  • 怎样建设网站教程上海网络公司seo
  • 河南网站建设软件宁波网站seo哪家好
  • 重庆公司法人变更流程上海seo网站推广公司
  • dedecms导入网站模板下载百度搜索热度指数
  • 深圳最新疫情防控动态网站seo排名优化
  • wordpress设计类模板合肥网络seo推广服务
  • 网站跳转是什么意思怎么制作seo搜索优化
  • 海沧区建设局网站市政处智能优化网站
  • 做网站怎么入账疫情最新消息今天
  • 去别人网站挂黑链网站关键词快速排名技术
  • dw做网站表格插不到右边单页网站模板
  • 赣州互联网哪家好北京seo培训机构
  • 做免费互动小游戏的网站google关键词排名查询
  • 政府网站分类seo关键词排名优化哪好
  • 电子政务网站建设公司排行榜百度关键字推广费用
  • 上海建网站费用优帮云网络营销的优势包括
  • 网站设计应该遵循的原则0元免费做代理
  • 国家信用信息公示官网网站关键词快速排名优化
  • 东莞专业网站设计建站企拓客软件怎么样
  • 简单美食网站模板腾讯体育nba
  • 网站怎么做图片轮播如何推销自己的产品
  • 网站做镜像seo运营招聘