내 웹 서버는 3-4 개의 웹 서비스를 호출해야합니다. Node.js에서 구현할 것이지만, 콜백 코드의 큰 팬이 아니기 때문에 gevent를 고려하고있었습니다. 녹색 스레드는 OS 스레드와 동작이 비슷하며 각 스레드는 다음 웹 서버를 호출하기 전에 하나의 웹 서비스에서 응답을 기다리는 것으로 이해합니다. 이 올바른지?여러 웹 서비스 호출 - Node.js와 녹색 스레드
예를 들어 웹 서비스 A, B, C, D를 호출 할 때 각각 1 초가 걸리면 노드는 병렬 호출로 인해 1 초에 4를 모두 마쳤지 만 gevent는 4 몇 초가 걸립니다.
답장을 보내 주셔서 감사합니다. 다른 녹색 스레드가 웹 서비스를 동시에 호출 할 수있는 방법을 이해합니다 (VM에 의한 스레드 스케줄링). 단일 녹색 스레드가 여러 호출을 병렬로 실행할 수있는 방법을 설명해 주시겠습니까? – tldr
나는 '그린 쓰레드'라는 용어가 부적절하다고 여기고 있습니다. 계속되는 에뮬레이션이 없습니다. 이 프로세스는 운영 체제를 사용하므로 Windows에 익숙하므로 간단한 시스템 인 IOCP (입력/출력 완료 포트)를 설명합니다. 응용 프로그램은 OS에 자원을 검색하고 완료되면 메시지를 보냅니다. 메인 이벤트 펌프는 응용 프로그램이 제공하는 작업을 계속 실행하고 OS 메시지를 알게되면 처리 할 이벤트 펌프에 완료를 추가합니다. 따라서 여러 자원이 스케줄되며 하나의 스레드가 완료 이벤트를 처리 할 수 있습니다. :-) –
gevent는 실제로 libuv가 아닌 libev를 사용합니다. 라이브러리는 거의 똑같은 일을합니다. libuv는 Windows에서 더 잘 지원합니다. – Anorov