|
멀티쓰레드로 개발해도 스테이트 머신 구조로 가는거 맞고요
switch case 구조 쓰는것은 단점이 있긴 하지만 일반적으로 많이 쓰고 있는듯합니다.
쓰레드 나누는 것은 동시 동작하는 모듈 단위로 나누면 되고요
일시 정지의 경우 우리 회사의 경우 쓰레드 싱크를 위해 이벤트 객체를 사용합니다.
참고하시길..
바보 님이 쓰신 글 :
: 답변 감사드립니다.
:
: 혼자서 정비 프로그램을 짜려고 하니 대는 대로 만들어서 ㅋㅋ..힘드네요 ㅋㅋ.
:
: 근대 멀티 쓰래드를 사용해도 기본적으로 이런 "스테이트 머신"으로 하게 되는거 않가요 ?
:
: 저는 프로그램 작성할때 단일 쓰래드나 멀티 쓰래드나 그냥 작업 단위로 ( 장비 구역 단위로)
:
: 쓰래드를 만들어서 사용하는데 , 혹시 이것도 제가 잘못하게 않인가 해서
:
: 모르는 것이 많아서 음냐 ...
:
:
: 그럼 수고하세요...
:
:
:
:
:
:
:
:
:
:
: 송신영 님이 쓰신 글 :
: : 장비 프로그램을 멀티 쓰래드가 아니라 단일 쓰래드로 작성하실 경우
: : 기본적으로 "스테이트 머신" 방식을 사용합니다.
: : 별거 아니구요 switch case 구문으로 각각의 동작을 하나의 case 구문에서 작성되고
: : 다음 동작을 하는 case로 step을 넘겨주는 방식입니다.
: : 그러면 stop 상태일 경우 현재 case 구문만 종료하고 stop한 후에 다시 start하게 되면
: : 마지막 case 구문에서 다음 case로 이동할 step을 지정했기 때문에
: : 그 case 구문으로 이동하면 되는 방식입니다.
: : 예전의 핸드폰 UI 에서도 이런 방식을 사용하며 보통 단일 쓰래드를 사용하는 장비 프로그램의
: : 기본 골격입니다.
: :
: : 바보 님이 쓰신 글 :
: : : C++ 빌더 6.0 을 사용해서 장비 제어를 하고 있는데
: : :
: : : 몇가지 프로그램 구조에 관한 의문이 발생했는데 별루 물어 볼곳도 없고 해서 ㅋㅋ 죄송.
: : :
: : : 장비가 동작하다 일시 정지 하고 다시 동작하는 기능을 만들고 싶은데 ..
: : :
: : : 일시정지 버튼 ....... 이것을 만들려구 하니 프로그램 로직에서 일시 정지 하면 GOTO 명령으로 그냥 함수를
: : :
: : : 나가게 만들었습니다
: : :
: : : 다시 장비를 가동하려고 하니 로직상 빠져 나간 곳의 위치를
: : :
: : : 기역했다가 다시 그곳의 한칸 위에서 실행하면 되기는 하겠는데 한개 한개 동작마다 정지하면 빠져 나가도록
: : :
: : : 만들어서 이련경우 동작마다 어느 부분에서 실행할 것 인지 선택하는 것을 또 만들어야 하는데
: : :
: : : 이런경우 프로그램이 많이 복잡해 질거 같은데 혹시 이련 경우 간단하게 할수 있는 방법은 없는지
: : : 스래드를 멈추고 다시 가동하는 것도 생각해봤는데 이런경우 에도 멈추어진 스텝 위에서 다시 시작해야 하는
: : :
: : : 것이 필요한거 같은데 ......
: : :
: : : 혹시 이런 프로그램 작성시 좋은 구조에 관해서 아시는분은 ?
: : :
: : : 그럼 수고하세요.
|