기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

[리눅스], 하나의 프로그램에서 , 녹음과 음악 play를 동시에 하는것이 가능한가요?


쉽게 생각할 수 있는게,

1. 멀티 프로세스를 사용하는법 --> 이 경우에는 자원을 공유하기 때문에 문제가 생기지 않을까요?


2. 쓰레드를 쓰는 법 :  --> 이 경우에는 자원을 공유하기 때문에 문제가 생기지 않을까요?


3. 두개의 실행 파일을 만들고, 한 프로그램에서, 스크립트로 다른 프로그램을 실행시키는 방법  --> 이 경우 실행되고 있는 프로세스에 command 같은것은 어떻게 전달 하나요?




고도리

2017.07.13 08:17:02
*.197.16.108

가능합니다.


1. 멀티프로세스라면, 하나의 프로그램에서 제어가 힘들겁니다.

   IPC로 제어해야 하는데....쩝


2. 보통은 멀티 쓰레드로 작성합니다.

   자원은 play/record가 서로 따로 열리기 때문에 메모리 공유부분만 신경쓰면 됩니다.

   물론, 따로 동작하므로 메모리는 거의 겹칠일이 없을겁니다.


3. 1번과 같은방법인데, IPC로 하는게 맞습니다만, 제어가 쉽지 않을겁니다.

김민욱

2017.07.13 19:05:40
*.131.77.55

답변 감사합니다..  ^^

Jazzguitar

2017.11.09 01:00:58
*.122.242.77

1. fork() 해서 쓰시겠다는 말이죠?? 멀티 ps든 thread든 구조가 간단하면 공유 메모리, 변수 핸들링은 어렵지 않습니다.

2. 위와 같습니다.

3. system() 혹은 execv() 류 함수를 이용하시면 됩니다. security 문제떄문에 system() 함수는 추천하지 않지만, 혼자 shell command를 하나의 pocess에서 구동하고 싶다면 system()으로 충분합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인