gc는 별도 스레드에서 동작한다고 알고있는데
스레드 공부하다보니 살짝 의문이..

언어별로 가비지 수거 요청 시에 즉시 수행된다고 하는 설명도 있고(c#)
힌트는 주지만 즉시 수행을 보장하지는 않는다는 설명도 있습니다.(java)

제가 보기에 둘 다 이론상으로는 가능한 방식으로 보이기는 합니다..

호출시 잠들어 있던 가비지 컬렉터를 깨우고 주도권을 넘겨 작동하게 하는 방식이면 전자도 가능할 것 같고

항시 수행중인 gc가 특정 시점에 플래그를 확인하고 수거하는 방식이면 후자도 가능해 보였기 때문입니다.

보통 어떤 방식으로 작동하나요?