为什么多个boost :: io_services会阻塞主线程?

时间:2019-01-15 23:01:00

标签: c++ boost

我有一个需要从7个串行端口读取的应用程序。我创建了一个封装串行端口并打开boost :: asio :: serial_port并启动异步读取操作的类。我正在接收所有数据,但是io_service线程占用大量CPU时间并减慢了我的主线程的速度。有什么方法可以阻止io_service线程占用大量CPU时间?

1 个答案:

答案 0 :(得分:0)

一些伪代码:

construct io_service
for each port
   open port
   start async read ( register read_handler_for_port )
run io_service

read_handler_for_port ()
   handle data
   start async read ( register read_handler_for_port )