Tornado와 asyncio를 사용하여 비동기 프로그램을 작성했지만, 비동기식 작업이 완료되었다는 것을 이해하지 못한다는 것을 깨달았습니다.비동기 작업은 스레드가 하나라도 있으면 "완료"한다고 어떻게 말합니까?
예를 들어 http://www.tornadoweb.org/en/stable/guide/async.html#examples의 비동기 가져 오기를 살펴 보겠습니다.
나의 이해는 지금까지입니다 : fetch
가 Future
를 산출 할 때
- 핸들러가 일시 중단됩니다.
Future
는 http://www.tornadoweb.org/en/stable/ioloop.html#tornado.ioloop.IOLoop.add_futureFuture
완료 통해IOLoop
에 첨가하고, 코 루틴이 움직이게 될IOLoop
일정하므로 완료 할 수있다.
3 단계의 Future
이 어떻게 완료되고 "done callback"이 호출되는지 이해할 수 없습니다. 스레드가 하나만 있다고 생각했기 때문에 Future
은 "백그라운드에서 작동"하고 컨트롤을 통해 콜백을 호출 할 수 있습니까?