부스트 스레드 또는 C++ 11 스레드로 QSemaphore
을 사용하고 싶습니다. 그게 허용됩니까?비 QThread 스레드에서 Qt 동기화 기본 요소를 사용할 수 있습니까?
답변
저는 pqConsole에서 멀티 스레딩이 중요한 역할을하고 있습니다.
SWI-Prolog (multithreaded, C로 구현) 용 콘솔을 실행하는 Qt GUI는 외국어 인터페이스가 인스턴스화 된 백그라운드 QThread에서 실행되는 사용자 프로그램 대신 IO를 관리합니다.
또한 스레드는 C면에서 시작될 수 있으며 전용 콘솔 (interactor/0 참조)을 가져옵니다. IO는 Qt GUI에서 다시 렌더링됩니다.
저는 QMutex와 QMutexLocker를 사용하여 동기화 (예 : 간단한 구성)하고 AFAIK는 예상대로 작동합니다.
이론적으로는 가능합니다.
참고 해당 시나리오에서 사용 가능한 부스트 세마포를 사용할 수도 있습니다. 또한 QSemaphore는 현재 pthread 인터페이스를 사용하지 않지만 사용자 정의 솔루션을 사용합니다. 나중에 pthread 기능을 더 많이 사용하는 것에 대해 리팩토링 담당자와 논의가있었습니다.
증명 링크를 추가하고 싶습니다. 'QSemaphore'는 워드 프로세서에서 thread-safe로 표시됩니다. [이 페이지] (http://qt-project.org/doc/qt-5.0/qtcore/threads-reentrancy.html)는 Qt 문서에서 스레드 안전성이 무엇을 의미하는지 설명합니다. 그리고 그 페이지에서'QThread'를 사용하기위한 요구 사항은 없습니다. 그래서 예, 괜찮습니다. –
- 1. QThread 기반 클래스에서 QWebPage를 사용할 수 있습니까?
- 2. QThread : 올바른 스레드에서 신호를 전화
- 3. Qt 객체를 상속하지 않고 Qt 스레딩을 사용할 수 있습니까?
- 4. 스레드에서 exit를 사용할 수 있습니까?
- 5. Qt MinGW QThread 성능이 나쁨
- 6. 스레드에서 메인 QT 프로그램을 실행할 수 있습니까?
- 7. Screen 클래스를 백그라운드 스레드에서 사용할 수 있습니까?
- 8. Qthread 동기화 문제를 극복하는 방법은 무엇입니까?
- 9. 비 Qt DLL (JNA)에서 QTimer 사용
- 10. 자바 스레드에서 동기화 됨
- 11. QThread :: getCurrentThread() QT 스레드가 아닌 경우
- 12. Opengl 비 동기화/비 차단 MAP
- 13. QThread : 메인 스레드에서 자식 스레드 메소드 호출
- 14. GSON은 LinkedList를 java.util.List 인터페이스의 기본 비 직렬화로 사용할 수 있습니까?
- 15. 비 UI 응용 프로그램을위한 Qt?
- 16. 자바 스레드에서 동기화 수행
- 17. Visual Studio 2010에서 Qt 프로젝트와 비 Qt 프로젝트를 함께 사용할 수 있습니까?
- 18. DynamicProxy 생성기를 여러 스레드에서 사용할 수 있습니까?
- 19. SDL2 : 다른 스레드에서 SDL_LockTexture를 사용할 수 있습니까?
- 20. 핫 샷을 여러 스레드에서 사용할 수 있습니까?
- 21. 안드로이드 어떻게 스레드에서 렐름을 사용할 수 있습니까
- 22. TWebBrowser를 Application.ProcessMessages없이 Delphi의 스레드에서 사용할 수 있습니까?
- 23. 새 스레드에서 startService를 사용할 수 있습니까?
- 24. iSpring Presenter 구성 요소를 기본 x64 어셈블리에서 사용할 수 있습니까?
- 25. 기본 응답이없는 Inquist의 드롭 다운 요소를 사용할 수 있습니까?
- 26. Qt 위젯의 기본 속성을 설정할 수 있습니까?
- 27. 동기화 된 Qt TreeWidgets
- 28. Qt의 다른 스레드에서 객체 동기화
- 29. Qt : 스레드에서 QFileWatcher를 실행해야합니까?
- 30. Qt : 믹스 인 기술을 사용할 수 있습니까?
호기심, 여기 Qt의 기본 제공 프리미티브를 사용할 때의 가치는 무엇입니까? 부스트 프로세스 간 세마포어 (http://www.boost.org/doc/libs/1_38_0/doc/html/interprocess/synchronization_mechanisms.html#interprocess.synchronization_mechanisms.semaphores)와 같이 광범위하게 사용되는 것을 사용하지 않을까요? – tinkertime
@ yankee2905 : 실제로 부스트를 사용하지는 않지만 공정한 포인트를 사용합니다. 만약 내가 쓰레딩 라이브러리에 세마포어를 구현했다면, 그것을 사용할 것이다. –