빠른 질문이 있습니다. 나는 다중 센서로부터 데이터를 얻기위한 작은 다중 스레드 프로그램을 만들고 pthreads와 qthreads에 대한 지식을 가지고있다. 두 라이브러리에 액세스 할 수 있습니다. 개인적으로 나는 디자인과 다양한 기능 때문에 Qt를 사용하는쪽으로 편향되어있다. 그러나 다른 하나를 사용하는 것에 상당한 이점이 있습니까? 감사합니다.QThreads 대 Pthreads
8
A
답변
8
QThread는 pthreads를 기반으로합니다. 객체 지향 추상화를 제공하므로 스레드로 작업하기가 더 쉽습니다. QThreads는 이식 가능하고, 기본 스레드 시스템을 사용하는 모든 시스템에서 실행될 수 있으며, pthread는 POSIX 시스템에만 적용됩니다.
QThreads를 사용할 때의 유일한 단점은 응용 프로그램을 Qt와 연결해야한다는 것입니다. 이 의존성으로 인해 응용 프로그램을 배포하기가 다소 어려워 질 수 있습니다.
2
리눅스의 QThread
은 pthread
을 사용합니다. Windows 측에 어떤 것이 있는지 잘 모르겠습니다. QThread
과 함께 사용할 수없는 특정 pthread
API 함수가있는 경우가 아니면 QThread
을 그대로 사용하여 전달할 수있는 이점을 얻습니다. 중요한 성능 차이가있을 것으로 기대하지는 않습니다. Qthread
을 사용하면 스레드 경계에서 신호/슬롯 메커니즘을 사용할 수도 있습니다.
4
하지만 QThread가 이벤트 루프를 사용하여 관리해야하므로 pthread와 같은 스레드를 죽일 수는 없습니다. 쓰래드가 오랫동안 열심히 일한다면, 쓰레드가 풀리지 않으면 멈출 수 없습니다. 어떤 경우에는 중요합니다.
관련 문제
- 1. FreeBSD의 pthreads
- 2. NSThread VS pthreads
- 3. Pthreads C++ 컴파일 오류
- 4. 구성 자동 재로드와 pthreads
- 5. posix pthreads in C
- 6. 개체 메서드가있는 pthreads
- 7. pthreads 디버깅에 도움이 필요
- 8. pthreads 응용 프로그램에서 할당
- 9. pthreads 메모리와 CPU 고정하기
- 10. 비 선점 Pthreads?
- 11. 버스 오류의 pthreads
- 12. pthreads 및 포인터에 대한 질문
- 13. pthreads : 허용 된 스레드 수
- 14. C++ pthreads 멀티 태스킹 [windows]
- 15. PThread 대 boost :: thread?
- 16. QThreads 동시성 문제. 동일한 신호를 수신하는 스레드는 서로를 블로킹합니다.
- 17. 실행을 멈추고 대기 상태가되는 스레드 (PThreads)
- 18. (비 Windows) 플랫폼에서 pthreads 지원이 부족합니다.
- 19. 의 pthreads 문제와 몇 가지 질문
- 20. pthreads 스레드에 대한 고유하고 지속적인 식별자?
- 21. pthreads 프로그램이 잠시 작동 한 다음 실속합니다.
- 22. libspe 대 libspe2? 차이점이 뭐야?
- 23. 대 ID 대 UniqueID 대 ClientID 대 UniqueClientID 대 StaticClientID?
- 24. iPhone 대 XML 대 비누 대 JSON 대 RESTful
- 25. 부 대 대 C# 대 파이썬?
- 26. SDI 대 MDI 대 TDI 대?
- 27. JSONML 대 InnerHTML 대?
- 28. 대 트림 대 FILE_IGNORE_NEW_LINES
- 29. "이상"대 "이상"대
- 30. 조회수 대 CALayers 대?
예 ... 저는 단지 그것을보고 있었고 내부적으로 어떻게 이루어 졌는지 보입니다. 고마워요. 실제로 tryLock()이 pthread_mutex_trylock을 사용하여 구현되었는지 여부를 구체적으로 찾고있었습니다. 나는 그것이 어떻게인지 생각한다. – blueskin
유일한 배포판 문제는 Qt 라이브러리에 동적으로 링크 할 때 코드와 함께 LGPL 라이선스를 포함해야한다는 것입니다 (이것은 공개 소스 버전과 상용 소스 버전을 사용하고 있다고 가정합니다). 창에서 어떤 DLL을 배포 할 것인지 inorder가 필요한지 확실하지 않으면'depends.exe'를 사용하면 정확하게 알려줍니다! http://www.dependencywalker.com/ – g19fanatic