void prepare()와 void finish()는 다음과 같이 순차적으로 호출됩니다.
prepare();
<do something>;
finish();
...
prepare();
<do something>;
finish();
간단히 말해서 실제로 호출되고 있음을 간단한 테스트로 암기하고 싶습니다. 이 방법은 응용 프로그램에서 동시 또는 비 순차적으로 호출되지 않습니다.
이 응용 프로그램은 단일 스레드 응용 프로그램입니다. 이것은 간단한 개발/테스트 온 전성 검사로서 이러한 함수가 순서대로 호출되고 어떤 이유로 든 동시에 호출되지 않음을 확인합니다. 또한 성능이 중요하기 때문에 이러한 어설 션/온 전성 검사는 생산 코드에서 생략해야합니다!
는이 작업과 같은 간단한 assert()를 사용합니까?
int test = 0;
void prepare() {
assert(++test == 1);
.
.
.
}
void finish() {
assert(--test == 0);
.
.
.
}
어떤 종류의 캐싱을 완화하기 위해 int 테스트에 volatile을 사용해야합니까? – chriskirk
휘발성으로 자격이 부여 된 int 테스트에 대한 의견이 있습니까? 현재와 같은 방식으로 레지스터에 캐시 할 수 있습니까? – chriskirk
@Fred Nurk 정교하게 주시겠습니까? 이 특별한 프로세스는 새로운 객체의 인스턴스화를 포함하지 않으며 단순히 애플리케이션 내에서 발생하는 프로세스 일뿐입니다. – chriskirk