답변
파이썬의 print isn't even vaguely thread safe. (Bram Cohen의 말, 내 것이 아닙니다.)
print
을 여러 스레드에서 호출하면 출력이 스케줄러의 배후에서 인터리브 될 수 있습니다.
다중 스레드에서'print '를 호출하면 파이썬의 IO 계층에서 비동기 버퍼링으로 인해 출력이 다른 스레드에서 여러 번 인쇄 될 수 있습니다. – ephemient
아, 상상했던 것보다 나빠요. –
단일 인쇄 스레드에 대기열 사용 –
대답은 아니오입니다. 스레드가 서로 인터럽트 할 수 있습니다. 그러나 잠금을 사용하면이를 피할 수 있습니다.
잠금은 스레드가 글로벌 작업 (특히 여기에서는 출력 화면)에서 서로 방해하지 못하도록합니다. 스레드가 잠금을 사용하여 글로벌 작업을 사용하려는 경우 먼저 잠금이 해제되어 있는지 확인한 다음 잠금이 해제 될 때까지 기다립니다 그 다음에 자물쇠를 잠그고, 글로벌 일과 관련된 일을하고, 마지막으로 자물쇠를 해제합니다.
그러나 플래그 변수를 사용하지 않고 이것을 구현하기위한 검사를 수행하면 스레드가 if 문과 잠금을 전환 할 수 있습니다. 파이썬은 threading.lock을 정확하게 기억한다면 잠금 클래스를 구현합니다.
또한 잠금을 올바르게 사용하지 않으면 교착 상태 또는 라이브 록이 발생할 수 있습니다. 지금은 시간이별로 없기 때문에 여기에서 모든 것을 설명 할 수는 없지만 더 많은 정보를 얻으려면 Google에서 작년의 대학 강의에서 프리젠 테이션을 공유 할 수 있는지 확인하고, 거기에 좋은.
- 1. DataGridView.DataSource가 DataGridView UI와 동기화 되었습니까?
- 2. 파이썬의 subprocess.call이 왜 이렇게 구현 되었습니까?
- 3. 에뮬레이터 클럭이 실제 시스템 클록에 동기화 되었습니까?
- 4. C#과 C++ 사이의 값이 동기화 되었습니까?
- 5. Facebook 덧글 플러그인 페이지와 동기화 되었습니까?
- 6. 파이썬의 인쇄에
- 7. 파이썬의 xml.dom.minidom
- 8. 파이썬의 Sum()
- 9. 파이썬의 Memcache
- 10. 파이썬의 생성자
- 11. 파이썬의 사인파
- 12. 파이썬의 스레드
- 13. 파이썬의 distutils에 ..
- 14. 파이썬의 동등성?
- 15. Silverlight 동기화
- 16. 동기화 된 대 동기화 대 동기화 된지도
- 17. UIScrollView 동기화 동기화
- 18. 변환을 사용할 때 내 인쇄물이 인쇄 미리보기처럼 보이지 않습니다.
- 19. 동기화 서비스를 통해 iCal과 동기화
- 20. 안드로이드와 서버 동기화 알고리즘을 동기화
- 21. 모델보기 동기화 (또는 동기화 방지)
- 22. 파이썬의 병렬 SSH
- 23. 순수 파이썬의 웹 세션
- 24. 파이썬의 if 문에서 생성자
- 25. 파이썬의 robotparser 무시 맵
- 26. html로 파이썬의 .doc 변환기?
- 27. 파이썬의 스레딩 서브 프로세스
- 28. 파이썬의 메모리 내장 데이터베이스
- 29. 파이썬의 루아 파서
- 30. 파이썬의 os.walk에 오류가 있습니까?
스레드 간 의미는 무엇입니까? –
인쇄는 진술입니다 (<3.0). 무엇을 동기화 했습니까? – Falmarri
자바에서와 같이 동기화 되었습니까? –