결정 론적 경량 동시성 (coroutine)을 지원하는 일부 언어가 있습니다.루틴, 파이썬, 루비 또는 다른 언어로 루틴 스택이 커지나요?
- 루아 - 코 루틴
- 스택리스 파이썬 -
- 루비 태스크 릿 - 섬유
- 이 ... 더 많은 수 있어야하지만, 현재 내가 많은 생각이 없습니다.
필자가 아는 한, 분리 된 스택이 많이 필요하므로 이러한 언어가 스택 증가를 어떻게 처리하는지 알고 싶습니다. 이것은 4KB와 함께 제공되는 some mention about Ruby Fiber을 읽었 기 때문입니다. 스택 오버플로를 방지하는 기능으로 광고하고 있습니다. 그러나 왜 그들이 스택이 자동으로 커질 것이라고 말하는지 이해할 수 없습니다. C 스택에만 국한되지 않는 VM이 스택 증가를 처리 할 수는 없지만 내부에 대해 잘 모르기 때문에이를 확인할 수는 없습니다.
이러한 종류의 마이크로 스레드에서 스택 성장을 어떻게 처리합니까? 명시 적/암시 적 제한 사항이 있습니까? 아니면 그냥 명확하고 자동으로 처리됩니까? 루비 VM 각 스레드에 대한 C 스택의 복사본을 구비하고 메인 스택에가 섬유 사이를 전환 할 때마다 그 스택 복사 관련된 약간 해키 시스템을 사용하여이 google tech talk으로 당
: 루비