Мои первые шаги в освоении многопоточности.
Пять лет кодинга на однопоточном пхп5, прощайте, я буду по вам скучать!
Данная хреновина просто проверяет на доступность первые 500 портов вашего локалхоста.
Причем делает это в 1000 потоков.
Начинать смотреть надо со строки 30 – там запускаются потоки, после чего каждый поток дергает threadMain(), которая в свою очередь обрабатывает доступные задания с помощью process().
# multi-thread port checker
import socket, queue, threading
def threadMain():
global queue
while True:
try:
task = queue.get_nowait()
except:
return 0
process(task)
def process(port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(0.01)
try:
sock.connect(('localhost', port))
except:
return 0
print('opened:', port)
sock.close()
# main
queue = queue.Queue()
for i in range(500):
queue.put(i)
for test in range(1000):
new_thread = threading.Thread(target=threadMain)
new_thread.start()
threading.Thread.join(new_thread)
print('done')
Я уже 3 года торгую фьючерсами на Bybit и приглашаю тебя присоединиться и получить до $30 000 бонусами плюс скидки на комиссии:
Зарегистрироваться на Bybit
Чем больше депозит – тем больше бонусов. Также моим рефералам доступны торговые боты для трейдинга по самым выгодным тарифам. 
