1. cancel的使用 async_wait设定的handler会被调用, 超时处理函数应该区分 boost::asio::error::operation_aborted
【ASIO deadline_timer 的使用】2.多次调用async_wait设定多个handler,则超时的时候它们都会被调用,如果将同一个handler设定多次,它也会被调用多次
3.在timer未超时前又调用expires_from_now相当于调用cancel
4.超时时间重新设定后,必须async_wait重新设定handler