문제

qthread 객체는 단일 실행 스레드를 나타냅니다. 그러나 qthread 객체가 생성 될 때 또는 start() 메소드가 호출됩니까?

여러 qthread 객체를 놓을 수 있는지 여부에 관심이 있으며 OS는 스레드를 생성합니다. start() 그리고 그들을 죽여라 run() 반환 한 다음 Qthread 객체를 다시 재사용 할 수 있습니다. 그러나 Qthread 객체가 아무것도하지 않는 동안 OS 리소스를 유지하고 싶지 않습니다.

(기록을 위해, 나는 qtconcurrent와 qthreadpool을 알고 있으며,이 상황에서 내 요구를 충족시키지 못합니다)

도움이 되었습니까?

해결책

Linux에서는 스레드 객체가 생성됩니다 ( pthread_create) 시 QThread::start 방법. Windows와 동일하게 보입니다.

여기에서 소스를 볼 수 있습니다.

유닉스 : http://qt.gitorious.org/qt/qt/blobs/master/src/corelib/thread/qthread_unix.cpp (라인 542).

Windows : http://qt.gitorious.org/qt/qt/blobs/master/src/corelib/thread/qthread_win.cpp (라인 419).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top