>백엔드 개발 >파이썬 튜토리얼 >Python에서 스레딩 모듈을 사용하는 방법

Python에서 스레딩 모듈을 사용하는 방법

王林
王林앞으로
2023-05-15 18:16:122241검색

파이썬의 스레딩 모듈에 대한 자세한 설명 스레딩은 스레드 동시성을 제공하기 위해 스레드 모듈보다 높은 수준의 API를 제공합니다. 이러한 스레드는 동시에 실행되며 메모리를 공유합니다.

스레딩 모듈의 구체적인 사용법을 살펴보겠습니다.

1. Thread 사용

대상 함수는 Thread 개체를 인스턴스화할 수 있으며 start() 메서드를 통해 실행을 시작할 수 있습니다.

멀티 스레드 동시성을 사용하는 것과 멀티 스레드 동시성을 사용하지 않는 것의 비교는 다음과 같습니다.

첫 번째는 멀티 스레드를 사용하지 않은 작업입니다.

코드는 다음과 같습니다.

#!/usr/bin/python 
#compare for multi threads 
import time 
def worker(): 
    print"worker" 
    time.sleep(1) 
    return 
    if__name__ =="__main__": 
    for i in xrange(5): 
    worker()

실행 결과는 다음과 같습니다. :

Python에서 스레딩 모듈을 사용하는 방법

다음은 멀티 스레드 동시성을 사용한 작업입니다.

코드는 다음과 같습니다.

#!/usr/bin/python 
import threading 
import time 
defworker(): 
    print"worker" 
    time.sleep(1) 
    return 
    fori in xrange(5): 
        t=threading.Thread(target=worker) 
        t.start()

Python에서 스레딩 모듈을 사용하는 방법

멀티 스레드 동시성을 사용한 작업의 시간이 훨씬 적게 걸리는 것을 분명히 알 수 있습니다.

2. threading.activeCount()

사용 이 메서드는 현재 프로세스의 스레드 수를 반환합니다. 반환된 숫자에는 기본 스레드가 포함됩니다.

코드는 다음과 같습니다:

#!/usr/bin/python 
#current's number of threads 
import threading 
import time 
defworker(): 
    print"test" 
    time.sleep(1) 
    for i in xrange(5): 
        t=threading.Thread(target=worker) 
        t.start() 
        print"current has %d threads" % (threading.activeCount() -1)

Python에서 스레딩 모듈을 사용하는 방법

3.threading.enumerate()를 사용합니다.

이 메소드는 현재 실행 중인 Thread 객체의 목록을 반환합니다.

코드는 다음과 같습니다.

#!/usr/bin/python 
#test the variable threading.enumerate() 
import threading 
import time 
defworker(): 
    print"test" 
    time.sleep(2) 
    threads=[] 
    for i in xrange(5): 
        t=threading.Thread(target=worker) 
        threads.append(t) 
        t.start() 
        for item in threading.enumerate(): 
            print item 
            print for item in threads: 
                print item

Python에서 스레딩 모듈을 사용하는 방법

4.threading.setDaemon()을 사용합니다.

백그라운드 프로세스를 설정하세요.

코드는 다음과 같습니다.

#!/usr/bin/python 
#create a daemon 
import threading 
import time 
def worker(): 
    time.sleep(3) 
    print"worker" 
    t=threading.Thread(target=worker) 
    t.setDaemon(True) 
    t.start() 
    print"haha"

Python에서 스레딩 모듈을 사용하는 방법

worker() 메서드에서 인쇄 작업이 표시되지 않아 백그라운드 프로세스가 된 것을 알 수 있습니다.

위 내용은 Python에서 스레딩 모듈을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제