我已经开始使用Boost.ASIO进行一些简单的网络编程,对该库的理解还不是很深,所以请原谅我这个新手的问题。
目前在我的项目中,我只有一个io_service对象。用于所有异步I/O操作等。
我的理解是,可以创建多个线程,并将io_service实例的run方法传递给线程,以为io_service提供更多的线程。
我的问题是:是否使用多个io_service对象是良好的设计?例如,是否拥有2个不同的io_service实例,每个实例都有2个相关联的线程,它们会相互了解(因此相互合作),或者如果没有,它们会对彼此产生负面影响?
我的意图是为基于套接字的I/O使用1个io_service,为串行基于(tty)的I/O使用另一个io_service。
目前在我的项目中,我只有一个io_service对象。用于所有异步I/O操作等。
我的理解是,可以创建多个线程,并将io_service实例的run方法传递给线程,以为io_service提供更多的线程。
我的问题是:是否使用多个io_service对象是良好的设计?例如,是否拥有2个不同的io_service实例,每个实例都有2个相关联的线程,它们会相互了解(因此相互合作),或者如果没有,它们会对彼此产生负面影响?
我的意图是为基于套接字的I/O使用1个io_service,为串行基于(tty)的I/O使用另一个io_service。