"The bug becomes visible when transmit spawns off a thread", 也就是说 task transmit里会用 fork--join_none并发一个线程来执行发送动作,因此generator_bad中的repeat(n)会在同一时刻执行完毕,而所产生的n个transmit线程在随后时刻其实在发送同一个Transaction对象。如果你能保证transmit在完成整个发送动作,同时其它对象,特别是checker,monitor等也完成了对t的处理后才会退出的话,那么generator_bad的写法也可以接受。但明显这一点是很难保证的。