더북(TheBook)
    print(f"처리 시간: {process_time}")

if __name__ == "__main__":
    crypto_hash = \
        "e24df920078c3dd4e7e8d2442f00e5c9ab2a231bb3918d65cc50906e49ecaef4"
    length = 8
    crack_password_parallel(crypto_hash, length)

➊ 패스워드를 발견했다.

➋ 현재 청크에서 패스워드를 발견하지 못했다.

➌ 시스템에서 현재 사용할 수 있는 CPU 코어 수를 확인한다.

➍ 서로 다른 프로세스에서 동시적으로 청크 여러 개를 처리한다.

➎ 더 이상의 작업이 없다는 의도를 나타내기 위해 풀을 닫는다.

➏ 풀에 맡겨진 모든 작업이 끝날 때까지 기다렸다가 프로그램의 나머지 부분을 실행한다.

코드를 실행하면 주 스레드에서 CPU 코어 수만큼의 워커 스레드를 가진 스레드 풀을 만든다. 각 워커 스레드는 2장에서 작성했던 코드가 하던 일을 그대로 수행한다. 다만, 각 후보 뭉치를 동시에 처리한다는 점이 다르다. 다음과 비슷한 내용이 출력될 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.