원문 : https://www.toptal.com/qt/qt-multithreading-c-plus-plus
BY ANDREI SMIRNOV - QT DEVELOPER @ TOPTAL
멀티스레딩은 쉽지안다.
race conditions, synchronization, and deadlocks and livelocks.
경쟁상태, 동기화, 데드락과 실시간락
이를 해결하기위해 , 포기하지않고 StackOverflow 를 찾아라.
그럼에도 , 여러 답변으로부터 올바른 것을 선택하는것은 어렵다. 각 방법마다 단점이 존재한다.
위키피이아의 멀티쓰레딩을 설명하였음
QThreadPool 과 QThread 선택하기
* Qt 프레임 워크는 멀티쓰레딩을 위한 많은 도구를 제공한다. 올바른 도구를 선택하는 것은 처음에 어려울 수 있지만 실제로는 의사 결정방법이 두가지로 존재한다.
Qt 에서 쓰레드를 관리하거나 직접 관리하려고 한다. 그러나 다른 중요한 기준이 있다.
1. 이벤트 루프가 필요한 작업. 특히, 작업 실행중에 signal/slot 메커니즘을 사용하지 않는 작업
- QtConcurrent 와 QThreadPool + QRuunable 을 사용 함
2. signal/slots 을 사용하는 작업이므로 이벤트 루프가 필요한 경우
- Worker Objects moved to + QThread
'Qt' 카테고리의 다른 글
[QtCreator]Ubuntu 한글 쓰기 (0) | 2018.10.11 |
---|---|
[b2qt] Error qtwebkit (0) | 2018.10.05 |
[rp3i] meta-boot2qt (5.12.0) (0) | 2018.10.04 |
[meta-boot2qt] rpi (0) | 2018.10.04 |
[Qt] 5.11 새 기능 (0) | 2018.09.20 |