> 백엔드 개발 > 파이썬 튜토리얼 > Python 스레드에서 반환 값을 어떻게 검색할 수 있나요?

Python 스레드에서 반환 값을 어떻게 검색할 수 있나요?

Barbara Streisand
풀어 주다: 2024-12-17 06:10:26
원래의
576명이 탐색했습니다.

How Can I Retrieve Return Values from Python Threads?

스레드에서 반환 값 액세스

스레드가 Python에서 생성되면 해당 대상 함수가 값을 반환할 수 있습니다. 그러나 기본 스레드에서 이 반환 값을 검색하는 것은 표준 방법을 사용하면 간단하지 않습니다.

한 가지 옵션은 목록이나 사전과 같은 변경 가능한 개체를 스레드에 전달하고 결과를 지정된 슬롯에 저장하는 것입니다. . 이 방법을 사용하려면 스레드에 추가 인수를 전달하고 스레드와 객체 간의 연결을 유지해야 합니다.

또 다른 접근 방식은 Thread 클래스를 하위 클래스로 분류하고 실행 및 조인 메서드를 재정의하는 것입니다. 재정의된 run 메서드에서 대상 함수의 반환 값은 하위 클래스 내의 전용 속성에 저장됩니다. 재정의된 조인 메서드는 이 속성에 저장된 값을 반환합니다.

다음은 ThreadWithReturnValue 하위 클래스를 사용하는 예입니다.

class ThreadWithReturnValue(Thread):
    
    def __init__(self, group=None, target=None, name=None,
                 args=(), kwargs={}, Verbose=None):
        Thread.__init__(self, group, target, name, args, kwargs)
        self._return = None

    def run(self):
        if self._target is not None:
            self._return = self._target(*self._args,
                                                **self._kwargs)
    
    def join(self, *args):
        Thread.join(self, *args)
        return self._return
로그인 후 복사

이 하위 클래스를 사용하려면:

twrv = ThreadWithReturnValue(target=foo, args=('world!',))

twrv.start()
print(twrv.join())  # prints 'foo'
로그인 후 복사

While 이 방법은 효과적이지만 Thread 클래스를 사용자 정의해야 하는데 이는 모든 시나리오에서 바람직하지 않을 수 있습니다. 궁극적으로 최선의 접근 방식은 애플리케이션의 특정 요구 사항과 요구 사항에 따라 달라집니다.

위 내용은 Python 스레드에서 반환 값을 어떻게 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿