通过阻塞函数run()来支持异步操作