Как закончить потоки после определенного количества времени?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как закончить потоки после определенного количества времени?

Сообщение Anonymous »

У меня есть этот сценарий Python, который просто запускает потоки, чтобы прослушать некоторые порты на Localhost. < /p>

Код: Выделить всё

#!/usr/bin/python3

import socket
import threading
import concurrent.futures

threads = []

def listen_on_port(port):
HOST = ''                 # Symbolic name meaning all available interfaces
PORT = int(port)          # Arbitrary non-privileged port
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print(addr,conn)

def main(ports):
with concurrent.futures.ThreadPoolExecutor() as executor:
for port in ports:
executor.submit(listen_on_port,port)

if __name__ == '__main__':
main(ports=[50010,50020,50030])
< /code>
Когда я запускаю этот скрипт, он слушает в портах, как и ожидалось.  Я использую этот скрипт, чтобы проверить, что правила брандмауэра разрешают соединения в этих портах.  И в другой системе я выполняю NC -ZV My -HOST 50010 
, и поток прослушивает на порт 50010, что я хочу.
Но я хотел бы Сделайте два улучшения: 1) Попросите потоки умирают через x секунд, 2) запустите потоки на задней земле, как демоны, чтобы мой скрипт выйдет и оставил потоки. < /p>
У меня пытался выяснить это в течение нескольких дней, и я никуда не получил. Пожалуйста, помогите!

Подробнее здесь: https://stackoverflow.com/questions/714 ... nt-of-time
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»