您当前的位置: 首页 >  服务器

qianbo_insist

暂无认证

  • 0浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

asio 多线程高性能异步服务器

qianbo_insist 发布时间:2022-06-01 22:15:59 ,浏览量:0

asio 多线程理解

理解asio的多线程,一个线程一个iocontext,这样各个socket是在不同的service里面进行的,我们使用第一个线程来接收,用不同的线程来处理客户端

#ifndef c_thread_pool_h
#define c_thread_pool_h

#include 
#include 
#include 
#include 

class c_thread_pool
{
public:
   c_thread_pool(int threadNum = std::thread::hardware_concurrency())
       : work_(new boost::asio::io_service::work(service_))
   {
       for (int i = 0; i start();
                                   }                                   
                                   this->doAccept();
                               });    
    }
    
private: 
    boost::asio::io_service &io_service_;
    tcp::acceptor acceptor_;
	c_thread_pool * pool_;
};

int main(int argc, char *argv[])
{
	c_thread_pool pool(4);

    unsigned short port = 5800;
	c_echo_server server(pool.getIOService(), port,&pool);

    pool.stop();
    
    return 0;
}
client

使用测试工具先来测试 在这里插入图片描述

服务端做回显数据,这里没有做协议,后面再做协议,并且加上并发测试客户端

关注
打赏
1663161521
查看更多评论
立即登录/注册

微信扫码登录

0.0454s