Я пытаюсь использовать асинхронное программирование с gevent и не в состоянии понять, как работает мой код.gevent spawing - последовательно, а не параллельно
Я пытаюсь пинговать google.com с помощью сокетов на закрытый порт (22) и ожидая, что функция ping
происходить одновременно, но это не происходит
У меня есть код питона, как показано ниже
class Ping(object):
def checkReachability(self,index):
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.settimeout(2)
print index
try:
sock.connect(('google.com',22))
gevent.sleep(0)
except socket.error as e:
print str(e)
sock.close()
def ping(self):
threads = [gevent.spawn(self.checkReachability, i) for i in range(3)]
gevent.joinall(threads)
if __name__ == 'main':
m = Ping()
m.ping()
Я ожидал увидеть:
0
1
2
timeout
timeout
timeout
Это то, что я получаю
0
timed out
1
timed out
2
timed out
Любая помощь была бы полезна.
Thanks