같은 Sample1 및 Sample2: 다른 스레드 풀을 다른 작업에
내가 생각 구현하고 싶었 무엇 간단한 스레드 풀을 만드는 방법에 대한 그물에 많은 사례가 다른 작업에 대해 별도의 스레드 풀을 가지고있다이다 . 예를 들어, 응용 프로그램은 들어오는 TCP 연결을 처리하기위한 스레드 풀 (네트워크 풀이라고 부름)과 데이터베이스 (데이터베이스 풀)와 통신하기위한 다른 풀을 가질 수 있습니다.
이러한 들어오는 tcp 요청에는 데이터베이스의 정보가 필요할 수 있습니다. 이 경우 데이터베이스 풀의 해당 스레드에 쿼리를 수행하도록 요청하고 결과를 비동기 적으로 반환해야합니다.
boost :: asio를 사용하는 것이 좋습니다. 각 수영장마다 하나의 io_service 인스턴스가 있어야합니까? 그리고 그 스레드는 서로 어떻게 통신해야합니까 (부스트 사용)?
이 모든 것을 설명하기 위해 이해할 수있는 코드는 그리 짧지 만 사소한 것이 아니지만 가급적 일종의 의사 코드를 사용하면 많은 도움이 될 것입니다.
감사합니다.
IMO, 가장 간단한 방법은 모든 끌어 오기를 별도의 'io_service'에 넣는 것입니다. 의사 소통을 위해,이'io_service' 사이에'post '펑터를 넣을 수 있습니다 (그러나 어떤 스레드가 게시물을 처리하는지 알 수 없습니다). –