변화를 기다리는 상태로 스레드를 보유하는 방법이 있습니까? 나는이Java의 스레드 스테이트 머신
같은 statemachines을 위해 .. TLL 뭔가 앞으로 일어날 (변경 VAR, 호출 방법 등 ..) 아마도이 이벤트 리스너, 또는 동기화 된 객체/방법을 사용하여 필요 기다려일반적인 aproach을 의미
단일 스레드 (및 GUI 없음) 응용 프로그램에서 작동 할 수있는 do {..} while (true) 루프를 사용하지만 스레드와 함께 사용할 수 없습니다. (최소한 코어를 사용하고 싶습니다. 모든 스레드 상태 머신)
: 그래서 간단한 (못생긴) 방법 는 "정기 검사"입니다 프로세서 걸리는 작업을 피하기 위해, 나는 다른 생각이예를 동기화 된 객체를 정의하고 스레드 수면 대신에 대기를 사용하는 절전 모드가 추가 의미
do{
Switch(state)
{
case STATE_A:
//..A things
break;
case STATE_B:
//..B things
break;
...
case STATE_Z:
//..Z things
break;
}
// Here! => wait()? Thread.sleep(TIME_CONST)? //Hold and yield
}while(powerOn);
의 단점은 사용의 복잡성을 추가 동기화 또는 TIME_CONST 내 일이 아무것도
내가 덕분에이를 수행하기위한 다른 아이디어를 알고 싶습니다 보이지 않는 것!
나는 그것이 복잡하다고 생각하는 것을보고, 가장 간단한 방법이다!, thanks –