현재 Qt를 기반으로하는 멀티 스레드 알고리즘을 구현해야합니다. 어쩌면 QThread
을 확장해야합니다. 하지만 그 전에 ", timer2
두 개를 사용하고 각각의 타임 아웃 신호를 스레드에 연결하여"가짜 "멀티 스레드 프로그램을 구현할 수 있는지 물어보고 싶습니다.QTimer를 사용하여 멀티 스레드 알고리즘을 구현할 수 있습니까?
2
A
답변
3
QTimer
의 timeout() 신호를 해당 슬롯에 연결하고 start()
으로 전화 할 수 있습니다. 그 이후부터 타이머는 일정한 간격으로 timeout() 신호를 내 보냅니다. 그러나 두 타이머는 메인 스레드와 메인 이벤트 루프에서 실행됩니다. 따라서 다중 스레드라고 부를 수는 없습니다. 두 개의 슬롯이 동시에 실행되지 않기 때문입니다. 하나씩 실행하고 다른 스레드가 주 스레드를 차단하면 다른 스레드는 호출되지 않습니다.
당신은 동시에 수행하고 개체에 대한 스레드 선호도 변경 QObject::moveToThread
를 사용해야 다른 작업에 대한 몇 가지 클래스함으로써 진정한 멀티 스레드 응용 프로그램을 가질 수 있습니다 QObject
에서
QThread *thread1 = new QThread();
QThread *thread2 = new QThread();
Task1 *task1 = new Task1();
Task2 *task2 = new Task2();
task1->moveToThread(thread1);
task2->moveToThread(thread2);
connect(thread1, SIGNAL(started()), task1, SLOT(doWork()));
connect(task1, SIGNAL(workFinished()), thread1, SLOT(quit()));
connect(thread2, SIGNAL(started()), task2, SLOT(doWork()));
connect(task2, SIGNAL(workFinished()), thread2, SLOT(quit()));
//automatically delete thread and task object when work is done:
connect(thread1, SIGNAL(finished()), task1, SLOT(deleteLater()));
connect(thread1, SIGNAL(finished()), thread1, SLOT(deleteLater()));
connect(thread2, SIGNAL(finished()), task2, SLOT(deleteLater()));
connect(thread2, SIGNAL(finished()), thread2, SLOT(deleteLater()));
thread1->start();
thread2->start();
주 Task1
그와 Task2
상속을 .
관련 문제
- 1. Iterator를 사용하여 재귀 알고리즘을 구현할 수 있습니까?
- 2. Goertzel 알고리즘을 어떻게 구현할 수 있습니까?
- 3. 정규 표현식을 사용하여 션트 알고리즘을 구현할 수 있습니까?
- 4. 파이썬을 사용하여 화재 감지 알고리즘을 구현할 수 있습니까?
- 5. 스레드 동기화, 누구나 알고리즘을 줄 수 있습니까?
- 6. firebase.js를 사용하여 멀티 플레이어 게임을 구현할 수 있습니까?
- 7. iPod과 같은 셔플 알고리즘을 효율적으로 구현할 수 있습니까?
- 8. 멀티 스레드, 스레드 동기화
- 9. Android - 스레드 풀 전략 및 Loader를 사용하여 구현할 수 있습니까?
- 10. 잠금 기능을 사용하여 스레드 안전성 열거를 구현할 수 있습니까?
- 11. KMP 알고리즘을 구현할 때 어떤 문제가 있습니까?
- 12. 여기서 정렬 알고리즘을 구현할 가치가 있습니까?
- 13. MFC 앱에서 nokia의 QTimer를 사용할 수 있습니까?
- 14. XSLT 프로세서가 멀티 스레드 일 수 있습니까?
- 15. ImageIO가 멀티 스레드 일 수 있습니까?
- 16. Node.js를 사용하여 멀티 스레드 동작을 프로그래밍 할 수 있습니까?
- 17. 멀티 프로세스에서 멀티 스레드 플라스크를 시작할 수 있습니까
- 18. VxWorks에서 협업 멀티 태스킹 시스템을 구현할 수 있습니까?
- 19. 내가 개발 한 멀티 스레드 응용 프로그램에서 멀티 코어를 지원받을 수 있습니까
- 20. 목록을 사용하여 멀티 스레드 됨
- 21. 단일 프로세서 시스템에서 멀티 스레딩을 구현할 수 있습니까?
- 22. 아이폰에서 대규모 멀티 플레이 게임을 어디에서 구현할 수 있습니까?
- 23. insert() 알고리즘을 구현할 때 문자열 값 결정
- 24. 멀티 스레드
- 25. 스레드 안전 Java에서 싱글 톤 패턴을 효율적으로 구현할 수 있습니까?
- 26. mapreduce를 사용하여 웹 서버를 구현할 수 있습니까?
- 27. django를 사용하여 Numpy를 구현할 수 있습니까?
- 28. 상속을 사용하여 연결된 목록을 구현할 수 있습니까?
- 29. 정적 메서드를 사용하여 인터페이스를 구현할 수 있습니까?
- 30. clojure.core.reducers를 사용하여 "파티션"기능을 구현할 수 있습니까?