今天在学习多线程编程,由于多个线程是同时启动的,所以输出也出现在了同一行,怎样才能换行输出呢?
输出结果是这样的:
*** MULTIPLE THREADS
startingstartingstarting fibfacsum at:at:at: Tue Dec 08 22:30:43 2015Tue Dec 08 22:30:43 2015Tue Dec 08 22:30:43 2015
facsum finished at:finished at: Tue Dec 08 22:30:44 2015Tue Dec 08 22:30:44 2015
我想要的结果是这样的:
starting fib at: Sat Nov 22 09:51:39 2014
starting fac at:Sat Nov 22 09:51:39 2014
starting sum at:Sat Nov 22 09:51:39 2014
那我应该怎样做呢?
먼저 답변해 주셔서 감사합니다. 그러나 Python 초보자인 저에게는 이러한 방법이 아직 명확하지 않습니다.
이 문제를 해결하기 위해 다른 방법을 사용했습니다.
스레드 간 전환은 한 스레드가 몇 문장을 실행하고 다른 스레드가 교대 루프에서 몇 문장을 실행하면 한 문장이 중단되지 않는 것이라고 생각했습니다.
원래 실수는 출력 문을 다음 형식으로 작성한 것입니다.
사실 Python의 관점에서 이는 명령문이 아니라 여러 명령문의 합입니다.
이 경우 스레드가 서로의 출력을 방해하므로 출력 문을 다음과 같이 변경했습니다.
이 경우 정상적으로 출력됩니다.
출력 문에 잠금을 추가합니다.
로깅
각 스레드는 출력해야 할 내용을 Queue()에 넣고 구체적으로 스레드를 시작하여 Queue()에서 데이터를 읽어 화면에 출력합니다.