개발/C#

콜백함수 / Callback 함수 / C# Delegate

그린란드상어 2018. 10. 28. 03:59
반응형

콜백 함수 Callback 함수



함수의 호출 실행 시점을 프로그래머가 아닌, 시스템에서 결정하는 함수를 콜백(CALLBACK) 함수라 부른다.


콜백은 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백이 넘겨받는 코드는 이 콜백을 필요에 따라 즉시, 혹은 나중에 실행할 수 있다.





일반적인 개발에서는 개발자가 필요한 시점에 특정 기능을 하는 함수를 호출하게 된다.


하지만 이런 함수의 호출을 시스템에 맞겨야하는 상황이 발생하기도 한다.








현실에서의 예



한 남자와 여자가 데이트를 하기로 했다.


남자는 준비시간이 10분이 걸리고, 여자는 1시간이 걸린다.


두 사람 모두 준비를 마쳐야 데이트를 간다고 했을때, 모두 준비되었는지 확인하는 법은 크게 두 가지가 있다.



1번





2번




1번과 2번 중 2번이 훨씬 더 효율적으로 보인다.


아마 1번 남자는 죽었을것이다.


프로그래밍에서도 마찬가지다.




프로그래밍에서의 예






위의 그림과 같이 신호(Signal)에 의한 쓰레드 동기화를 할 때 사용할 수 있다.


응용 프로그램은 데이터를 처리하기 위해 데이터가 들어오길 기다리다 라이브러리에서 콜백함수를 호출하면 대기 상태를 해제하고 다음 일을 할 수 있다.




반응형