如何从主线程突然终止线程?

2024-04-26 22:36:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个ftp服务器,它使用永远服务命令。这个ftp服务是在一个线程中调用的,我想做的是,当我点击GUI上的stop按钮时,我想突然从主线程关闭线程。在

import os
import sqlite3
from pyftpdlib import ftpserver
def main():
    authorizer = ftpserver.DummyAuthorizer()
    #does something
    address = ('127.0.0.1', 10221)
    ftpd = ftpserver.FTPServer(address, handler)

    # start ftp server
    ftpd.serve_forever()
if __name__ == '__main__':
    main()

这是我的主线程,它调用ftp服务

^{pr2}$

请帮帮大家


Tags: import命令服务器osmainaddressftpgui
1条回答
网友
1楼 · 发布于 2024-04-26 22:36:45

根据documentationclose_all应该“停止服务…”,所以serve_forever应该返回。在

将您的ftpd对象存储在一个全局变量中(当前它是main的局部变量),您可以从主线程调用close或{}。在


根据您的评论,步骤如下:

  1. 使ftpd = ftpserver.FTPServer(address, handler)引用global variable
  2. 当您想停止提供ftp连接时,请调用ftpd.close_all()

相关问题 更多 >