멀티 쓰래딩 프로그래밍에서 함수를 각 파일에 알맞게 배치하는
글쓴이: ssif / 작성시간: 금, 2005/09/02 - 1:58오후
뮤텍스를 이용한 동기화를 통해 다중쓰래드 프로그래밍을 하고 있습니다.현재 콘솔 환경에서만 실행이 되게끔 작성 되어 있고 차후 gui를 포함 하려고 합니다.현재 고민중인 문제는 다중쓰래드를 생성할경우 main() 가 있는 파일의 코드량이 급격이 늘어 난다는 점입니다.물론 몇몇 작성한 함수는 다른 파일로 나누어 쓰래드 작업 내용 일부분에 포함 되긴 했습니다.그러나 만들려는 쓰래드의 갯수가 현재 2개인데 5개 정도로 늘어날 경우 main()이 있는 파일의 소스코드량만 늘어나게 됩니다.
다중쓰래드 프로그래밍 할 때 쓰래드 관련 함수들을 다른 파일에서 작성하고 싶습니다.즉 함수들을 적절히 다른 파일들로 분산시키고 싶습니다.물론 다중 쓰래드는 잘 동작 하도록 하려고 합니다.
#ifndef __fuct_h__
#define __fuct_h__
형식으로 파일을 나눌경우 전역 함수를 둘수 없어 보입니다.어떤식으로 코드를 작성해야 할까요?
현재 작성한 프로그램은 실행은 됩니다만,main() 함수가 있는 파일에 2/3정도의 코드량이 몰려 있습니다.적절하게 이 쓰래드 관련 함수들을 다른 파일로 분산 시키고 싶은데 참고할 만한 코드는 없는지요?많은 훈련을 통해 습득할 수 도 있지만,막상 현재 어떻게 해야 할지 아이디어가 떠오르지 않습니다.
win32 와 c언어를 사용하고 있습니다.
미리 감사드립니다.
Forums:
음, 멀티쓰레드 환경이라고 해서 특별히 틀릴것은 없지않나요?A.cpp
음, 멀티쓰레드 환경이라고 해서 특별히 틀릴것은 없지않나요?
A.cpp 파일에
이런 함수가 있으면
b.cpp 파일에서 이런 함수를 사용할 때
b.h파일에
extern void test( void );
라고만 써주면 되지 않나요?
이 문제는 다중쓰레드 문제가 아니며, darkorb님이 말씀하신대로의 문
이 문제는 다중쓰레드 문제가 아니며, darkorb님이 말씀하신대로의 문제입니다.
쓰레드 함수는 위처럼하면되고,
다중쓰레드간에 공유메모리(이름은 좀 거창하지만, 글로벌변수)를 파일간에
공유하는 방법론 정도면 충분하겠습니다.
메인에서
int i;
그외 참조하는 곳에서
extern int i;
이 정도면 되겠군요.
답글을 달아주신 두분께 감사드립니다.제가 생각이 짧았습니다.그 부분까지는
답글을 달아주신 두분께 감사드립니다.제가 생각이 짧았습니다.그 부분까지는 생각을 못하고 있었습니다.단순히 전역변수만을 염두하다보니 생각이 미치지못했습니다.다시한번 감사드립니다.
봄들판에서다
댓글 달기