2014-01-15 3 views
1

파이썬에서 3 개의 스레드를 만들고 싶습니다. 파이썬 클래스 스레드 라이브러리를 사용하고 있습니다. while 루프에서 스레드를 생성하는 방법은 다음과 같습니다. 문제가 생길 수 있습니까?파이썬에서 많은 수의 스레드 생성하기?

while (count <= 3): 
    try: 
     thread = CreateThread(count, args) 
     thread.start() 
    except: 
     logger.error("Error: unable to start thread ") 

기타 올바른 방법은?

+0

이 보인다 :

그래서 코드는 더 같아야합니다. 질문을 과도하게 시청하고 문제를 알려주십시오. @Serdalis 대답에 대한 귀하의 의견에 따르면 라우터에 여러 번 연결하는 데 문제가 있으며 스레드를 시작하는 데 문제가 없습니다. 대부분의 플라스틱 라우터에는 연결 제한이 있습니다. –

답변

3

실제 스레드 클래스를 볼 수는 없지만 개선 할 수있는 내용이이 코드에 있습니다.

각 스레드에 대한 참조를 유지하여 나중에 중지/결합/대기 할 수 있습니다. 문제는 정말 여기에 정의되지 않은 것처럼

thread = [] 
for i in range(3): 
    try: 
     new_thread = CoreRouterThread(count, args) 
     new_thread.start() 
     # we append the thread here so we don't get any failed threads in the list. 
     thread.append(new_thread) 
    except: 
     logger.error("Error: unable to start thread ") 
+0

감사합니다 serdalis ... 각 스레드는 라우터에 연결하고 데이터를 가져 오는 데 사용되는 ...이 루프로 인해 어떤 문제가 발생합니까? .. 피어 오류로 인한 연결 재설정이 발생했습니다. –

+0

이와 같은 루프가 문제를 일으키지 않아야합니다. 어떤 이유로 든 [서버가 사용자와 대화하기를 원하지 않기 때문에] 오류가 발생합니다 (http://stackoverflow.com/questions/1434451/what-does-connection-reset-by-peer-mean). 넷 코드 또는 네트워크 구성에 문제가있을 수 있습니다. – Serdalis