이 애플리케이션은 Python 2.7로 작성되었으며 Ubuntu 14.04에서 실행됩니다.
50 개의 스레드를 실행하고 하나의 스레드는 모든 CPU를 사용하고 (100 % 사용량은 htop에 표시됨) 다른 스레드는 계속 실행할 기회가 없습니다. 디스패처가 다른 스레드로 변경할 수없는 것 같습니다. 정상인가요?
스레드 대신 프로세스를 사용해야합니까? 다중 처리를 사용하기 때문에 더 많은 CPU를 사용할 수 있다고 생각합니다.
https://wiki.python.org/moin/GlobalInterpreterLock
그리고 예, 다중 처리 는 아마도 귀하의 경우를 구현하는 데 권장되는 방법입니다. 또는 CPU를 많이 사용하지 않도록 매달린 스레드를 다시 작성하려고 시도 할 수 있습니다 ( 멈춘 이유에 따라 다르며 무언가를 계산할 가능성이 있음). 또는 적어도 time.sleep(0)
@ user5402가 제안한대로 때때로 실행하십시오 .
또한 유용한 asyncio를 찾을 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다