나는 일반적으로 스레딩에 익숙하지 않고 여러 가지 아이디어로 내 밑에 발을 들여 놓았다. 그러나, 나는 설명 할 방법이 확실하지 않은 것을 발견했습니다.이상한 출력 오류가있는 파이썬 스레딩
import threading, datetime
class ThreadClass(threading.Thread):
def run(self):
for _ in range(3):
now = datetime.datetime.now()
print "%s: %s" %(self.getName(), now)
for i in range(2):
t = ThreadClass()
t.start()
이 프로그램은 내가하고 싶었던 정확히 않습니다, 그러나, 출력이 거기에 어떤 임의의 오류가 있습니다 : 여기에 코드입니다.
Thread-1: 2016-10-12 17:34:23.012462
Thread-1: 2016-10-12 17:34:23.012802
Thread-2: 2016-10-12 17:34:23.013025
Thread-2: 2016-10-12 17:34:23.013108
Thread-2: 2016-10-12 17:34:23.013225
Thread-1: 2016-10-12 17:34:23.013252
오류는 상대적으로 일관됩니다 (즉, 동일한 공간과 새 행이 다른 장소에 출력 됨). 나는 그것이 같은 시간에 출력 스트림에 쓰려고하는 스레드와 관련이 있다고 의심하지만,이 특정 실행에서는 Thread-2가 실행 중일 때 두 가지 오류가 발생합니다.
이 문제가 발생하는 이유에 대한 설명이 있으면 감사드립니다.
나는이 코드를 우분투 14.04 (듀얼 코어 CPU)에서 파이썬 2.7로 실행하고있다.
네, 내가 찾고있는 해답의 이상을 가지고 파이썬 3.x를을 사용했다. 출력 스트림이 호출되는 방식 또는 인쇄 할 항목을 여러 개받을 때 수행해야하는 방식이 있어야한다고 생각했습니다. 설명 주셔서 감사합니다! – BrandonM