일반함수로 다음과 같이 funcA(), funcB(), funcC()가 있습니다.
감시 스레드가 돌다가 데이터가 있으면 각 함수들을 호출 합니다.
funcA에서 ⓐ 수행 후 gAA = true;로 놓고 suspend 되어 있어야 합니다.
funcB에서 ⓑ 수행 후 gBB = true;로 놓고 subpend 되어 있어야 합니다.
funcC에서 gAA, gBB가 true 일 때, funcD()을 수행하고,
funcD()의 리턴값을 판단 후 funcF()를 수행하고,
gAA, gBB를 false로 놓고, funcA(), funcB()를 깨우고, suspend 되어 있어야 합니다.
그리고 나서, funcA()의 ⓒ를 수행, funcB()의 ⓓ를 해야 합니다.