>백엔드 개발 >파이썬 튜토리얼 >병렬 작업 실행을 위해 Python에서 멀티스레딩을 효과적으로 사용하려면 어떻게 해야 합니까?

병렬 작업 실행을 위해 Python에서 멀티스레딩을 효과적으로 사용하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-25 02:10:10358검색

How Can I Effectively Use Multithreading in Python for Parallel Task Execution?

Python의 멀티스레딩

Python에서는 멀티스레딩을 활용하여 여러 스레드에 걸쳐 작업을 나눌 수 있습니다. 다음은 간단한 예입니다.

Python 3.3:

from multiprocessing.dummy import Pool as ThreadPool

my_array = [1, 2, 3]

pool = ThreadPool(4)
results = pool.map(my_function, my_array)

이전 Python 버전:

여러 인수를 전달하려면, 고려하다 this:

my_function = lambda x, y: x * y
list_a = [1, 2, 3]
list_b = [4, 5, 6]

pool = ThreadPool(4)
results = pool.starmap(my_function, zip(list_a, list_b))

설명:

  • Map은 시퀀스의 각 요소에 다른 기능을 적용하고 결과를 list.

구현:

  • Multiprocessing.dummy는 지도 기능의 병렬 버전을 제공합니다.
  • 대신 스레드를 사용합니다. 프로세스가 많아 I/O 집약적인 작업에 적합합니다.
  • Pool 클래스는 세트를 생성합니다. 맵 기능을 병렬로 실행하는 작업자 스레드의 수입니다.

예:

  • 제공된 코드는 4개의 스레드로 풀을 생성합니다.
  • 지도 기능을 사용하여 URL 목록에 간단한 기능을 적용합니다.
  • 결과는 다음과 같습니다. 모든 스레드가 작업을 완료하면 목록에 반환됩니다.

추가 참고 사항:

  • CPU 집약적 작업의 경우 여러 프로세스 사용을 고려하세요.
  • map의 함수에 여러 인수를 전달하려면 Python 버전 3.3 이상이 필요합니다. 이전 버전의 경우 답변에 언급된 해결 방법을 사용하세요.

위 내용은 병렬 작업 실행을 위해 Python에서 멀티스레딩을 효과적으로 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.