【问题标题】:Creating a socket inside a thread spawned by a process在进程产生的线程内创建套接字
【发布时间】:2021-08-12 15:55:25
【问题描述】:

我正在使用 python 3.8,并且正在尝试连接到 mqtt 代理。此连接遵循以下路径:

客户端(由多处理产生)-> 线程(由客户端产生)-> 线程尝试连接

我看到创建套接字时线程卡在了套接字 create_connection 函数中。很好奇,如果我以这种方式扭转局面:

客户端(由多线程生成)-> 进程(由客户端生成)-> 进程尝试连接

它有效。有什么理由为什么在第一种情况下线程无法创建将连接到服务器的线程?我无法真正调试它,因为所有异常都被进程吞没了

谢谢

【问题讨论】:

    标签: python-3.x sockets


    【解决方案1】:

    原来驱动线程的进程和线程本身都是守护进程。出于某种奇怪的原因,即使您启动进程和线程并在进程之后进入睡眠状态,即使它们运行,线程也不会连接到服务器/代理。解决方案是不将线程声明为守护进程并加入它们,然后它们将能够连接到服务器。错误根本不清楚,因为我预计线程可能不会运行到那个点,或者至少有一些明确的迹象表明正在发生的事情。

    【讨论】:

      猜你喜欢
      • 2020-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多