2014-02-07 7 views
0

[NOOBS QUESTION] 안녕하세요. 우선, 제 영어를 유감스럽게 생각하며,이 언어를 더 잘 알고 자 노력 중입니다. -> 비 포함 그래픽 인터페이스, 메뉴 스레드 및 오디오 스레드멀티 스레드, 스레드 동기화

하여 Main.cpp :

나는 세 개의 파일을했습니다. Lettore.cpp -> 파일의 형식을 조정하고 올바른 라이브러리를 사용하여 오디오를 재생하는 기능을 포함하고 중지, 재생, 일시 중지, 건너 뛰기 기능도 포함합니다. 두 개의 오디오 코드 라이브러리 -> 트랙을 디코딩하여 재생을 위해 ao로 보냅니다.

이제 질문은 : 어떻게 구현할 수 있습니까? 내 어려움이 주요 파일에 있습니다. 나는 "menu"("play/pause, skip, ecc ....) 쓰레드 코드를 작성한다. 이제 오디오 쓰레드는 main에서 분리되어야한다. (프로그램을 차단할 수 없기 때문에, .?), 그러나

내가 C++ 11 스레드 모듈 와 ++ g을 사용하고

당신의 시간

시 주셔서 감사합니다 ... 나는이 작업을 수행 할 수있는 방법 메뉴 스레드와 통신해야합니다 :이 질문 ISN 경우 't 규칙에 일치하는 나는 즉시이 문제를 수정!

+0

포스트 잠금이없는 스레드 안전 큐의 하나의 구현을 찾을 수 있습니다. –

답변

1

메뉴 및 오디오 스레드에 공통된 큐를 사용하십시오. 메뉴 쓰레드는 커맨드로 큐를 채우고, 오디오 쓰레드는 그것을 때때로 검사한다.

당신은 당신이 이미 한 일을 http://moodycamel.com/blog/2013/a-fast-lock-free-queue-for-c++

+0

다음은 또 다른 예입니다. http://www.boost.org/doc/libs/1_55_0/doc/html/lockfree/examples.html – Frank