boost.asio를 사용하여 읽기 및 쓰기에 별도의 스레드를 사용할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1837815

문제

부스트에 따르면 선적 서류 비치, 여러 스레드가 호출됩니다 io_service::run() IO 서비스가 비동기 작업을 수행하는 데 사용할 수있는 스레드 풀을 설정합니다. 그것은 풀에 합류 한 모든 스레드가 동등한 것으로 간주된다고 명시 적으로 명시하고 있습니다.

이것은 소켓에서 읽을 수있는 별도의 스레드를 가질 수없고 글을 쓰기위한 별도의 스레드를 가질 수 없다는 것을 의미합니까? 가능하다면 어떻게 구현합니까?

도움이 되었습니까?

해결책

호출되는 모든 스레드 io_service::run() 비동기 핸들러를 호출하는 데 사용할 수 있습니다. 그러나 어떤 유형의 작업을 실행하는지 구체적으로 지정할 수는 없습니다. 예를 들어, 2 개의 배경 스레드에서 io_service :: run ()을 호출하면 socket::async_send 그리고 socket::async_receive 기본 스레드에서는 처리기가 현재 사용 가능한 모든 배경 스레드에서 실행됩니다. 예, 모든 스레드는 기본적으로 동등한 것으로 간주되며 모든 비동기 작동에 사용될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top