asio io_service multithreaded timer

来源:互联网 发布:淘宝店铺动态怎么看 编辑:程序博客网 时间:2024/06/07 02:23
今假设起1000个定时器,每一个定时器每隔5秒执行一个任务。
现在有两种方案:
一:初始化一个io_service
所有的定时器都绑定到io_service,所有的任务都交由一个io_service执行,
那么是单线程执行还是多线程执行?
答案是都可以,取决于你。
如果只有一个线程A执行io_service的run()方法,那么所有的任务都会由线程A执行。
如果有多个线程A,B,C...执行io_service的run()方法,那么所有的任务将由多个线程A,B,C...共同完成,彼此之间并无顺序而是随机执行。
二:初始化多个io_service(但是由于系统的限制,只可以起很少量的io_service在我的64位16G内存的机器上只开到了340个)
所有的定时器可以分批绑定到各个io_service,所有的任务由多个io_service共同完成。
当然每个io_service可以由多个线程执行其run()方法,其所负责的任务分担到各个执行run()方法的线程.
0 0
原创粉丝点击