Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从主线程突然终止线程?_Python_Multithreading_Ftplib - Fatal编程技术网

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

Python 如何从主线程突然终止线程?,python,multithreading,ftplib,Python,Multithreading,Ftplib,我有一个ftp服务器,它使用serve_forever命令。这个ftp服务是在一个线程中调用的,我想做的是,当我点击GUI上的停止按钮时,突然从主线程关闭该线程 import os import sqlite3 from pyftpdlib import ftpserver def main(): authorizer = ftpserver.DummyAuthorizer() #does something address = ('127.0.0.1', 10221)

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

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服务的主线程

def start_ftp(self):
    self.ftp_status.setText("Running")
    self.ftp_status.setStyleSheet("Background : light green")
    #thread.start_new_thread( FtpService )

def stop_ftp(self):
    self.ftp_status.setText("Stopped")
    self.ftp_status.setStyleSheet("Background : red")
    #what should i put here for the desired result
请帮助伙计们

根据,
关闭所有
应该“停止服务…”,所以
永远服务
应该返回

ftpd
对象存储在全局变量中(当前它是
main
的本地变量),您可以从主线程调用
close
close\u all


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

  • 使
    ftpd=ftpserver.ftpserver(地址、处理程序)
    参考
  • 调用
    ftpd。如果要停止为ftp连接提供服务,请关闭\u all()

  • 你能将
    ftpd
    存储在公共可见的地方(即,在全局中)并从主线程调用
    close
    close\u all
    吗?@无用:thanx为了快速响应,请给出一个如何执行上述给定答案的示例。你不想突然关闭线程。您想停止FTP服务。编写合理的多线程代码的第一步是考虑工作而不是执行工具。@DavidSchwartz:thanxtip@DavidSchwartz:您推荐用于python多线程编程的任何书籍或材料