sách gpt4 ăn đã đi

python — Tại sao các phương thức sys.exit(), exit(), raise SystemExit không hoạt động?

In lại 作者:太空狗 更新时间:2023-10-29 23:59:55 27 4
mua khóa gpt4 giày nike

我需要一个替代方法来在线程函数内终止 python 脚本。我的意图是在客户端输入 0 时终止服务器...这是否不起作用,因为线程尚未终止?这是我的代码:

socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
print 'Socket created'

thử:
socket.bind((HOST, PORT))
except socket.error, message:
print 'Bind statement failed. ERROR: ' + str(message[0]) + ' Message: ' + message[1]
sys.exit()

print 'Socket Binding Successful'

socket.listen(10)
print 'Socket is currently listening'


def clientThread(connection):
trong khi 1:
data = connect.recv(1024)
thử:
quit = int(data)
except:
quit = 3
if quit == 0:
print 'Closing the connection and socket...'
connect.close()
socket.close()
sys.exit(); //Alternative needed here...
phá vỡ
reply = 'Ok....' + data
if not data:
phá vỡ
connect.sendall(reply)


while 1: #forever loop
connect, address = socket.accept()
print 'Just connected with ' + address[0] + ' : ' + str(address[1])
start_new_thread(clientThread, (connect,))

socket.close()

câu trả lời hay nhất

Vấn đề là sys.exit() 所做的只是引发 SystemExit。由于这发生在工作线程中,因此效果是停止该线程(异常不会跨线程传播)。

您可以尝试通过您自己的某种机制或通过调用 thread.interrupt_main() 向主线程发出脚本需要终止的信号。 .

如需大锤式方法,请调用 os._exit() .

关于python - 为什么方法 sys.exit()、exit()、raise SystemExit 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13612434/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress