스레드 풀은 t1, t2, t3 및 t4의 4 개의 스레드로 구성됩니다. 이들은 동시에 실행되지만 t3 및 t4의 입력은 t2의 출력에 따라 다릅니다. t2가 완료된 후 처리를 위해 출력 데이터를 t3 및 t4로 보내도록 메시지 큐를 구현하는 방법은 무엇입니까? 잠금 메커니즘을 사용하여 메시지 대기열을 구현하려했지만 잠금이 꽤 비싸다고 생각됩니다. 스레드간에 데이터를 전달하는 잠금없는 메커니즘이 있습니까? visual studio 2010에서 boost :: thread를 사용 중입니다.C++ - 스레드간에 데이터 전달
답변
부스트에 잠금 해제 대기열 : http://www.boost.org/doc/libs/1_56_0/doc/html/lockfree.html이 있습니다.
안녕 토모, 대한 내 경우 t3과 t4 모두 t2에서 출력 데이터를 가져와야합니다. 그래서 누가 메시지 대기열에서 데이터를 대기열에서 제외 시킬지 궁금합니다. t2 나되어야 t3이나 t4가 먼저 완료 될지 확실하지 않습니다. 나는 t2가 새로운 데이터를 enqueue 할 때마다 dequeue를 수행한다는 것을 의미한다. – Bent
예, t2는 출력을 대기열에 넣어야합니다. T3 및 t4는 대기열에 처리 할 것이 있는지 주기적으로 확인해야합니다. t3와 t4에는 할 일이 있다고 가정합니다. 그렇지 않은 경우 (즉, t2의 출력을 기다리고 처리하는 작업 만) 잠금이없는 대기열은 잊어 버리고 잠금 솔루션으로 이동하십시오. 스레드가 어쨌든 대기해야하는 경우 잠금 비용이 걱정되지 않아야합니다. – Tomo
- 1. 스레드간에 데이터 전달
- 2. C를 사용하여 스레드간에 데이터 전달
- 3. 싱글 톤을 사용하여 스레드간에 데이터 전달
- 4. 스레드간에 개체 집합 전달
- 5. 두 스레드간에 값 전달
- 6. 이벤트를 사용하여 스레드간에 정보 전달
- 7. 자바 스레드간에 데이터 공유
- 8. Qt 스레드간에 데이터 공유
- 9. 웹 작업자와 기본 스레드간에 많은 양의 데이터 전달
- 10. Python의 큐 모듈을 사용하여 스레드간에 값 전달
- 11. C++의 원자 포인터 및 스레드간에 개체 전달
- 12. C# 클래스간에 데이터 전달
- 13. C++ g_signal_connect의 데이터 전달
- 14. WPF : UI 스레드와 백그라운드 스레드간에 객체 전달
- 15. JMeter. 스레드간에 동기화 데이터 동기화
- 16. C#의 스레드간에 메시지 보내기
- 17. C# 스레드간에 파일 핸들링 공유
- 18. C 전역 정적 - 스레드간에 공유?
- 19. C# 클라이언트에서 DLL로 데이터 전달
- 20. Qt 스레드간에 많은 양의 데이터 보내기 Qt 스레드간에 많은 양의 데이터 보내기
- 21. 스레드간에 데이터 바인딩을 시도하는 스레드 안전 문제
- 22. blockingqueues 질문을 사용하여 스레드간에 데이터 공유
- 23. 게시자와 소비자 스레드간에 스택을 통한 데이터 공유
- 24. 스레드간에 동기화
- 25. 스레드간에 안전합니까?
- 26. C# .NET의 스레드간에 콘솔을 잠그는 방법은 무엇입니까?
- 27. C# 및 WCF의 스레드간에 개체 공유
- 28. 스레드간에 어떻게 동기화해야합니까?
- 29. 스레드간에 변수를 공유하는 방법
- 30. 스레드간에 XPObject 객체를 공유합니다.
는 다음 링크에서 알아보기 : http://stackoverflow.com/questions/20595760/c-communication-between-threads –