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