稍微优化一下bind的参数传递方式
修改task，使用内部的prepare类型来传递启动线程所需的信息，以避免task的“所有权转让”语义