如何一次创建多个线程

时间:2014-12-16 12:17:25

标签: c++ multithreading

任何人都可以告诉我如何一次创建多个线程 有没有这样的? 喜欢: pthread_create(thread,attr,start_routine,arg) 应该一次给我一个以上的线程。

1 个答案:

答案 0 :(得分:1)

你的实际问题似乎更像是“如何通过在同一时间调用相同的函数来确保我的测试运行潜在的竞争条件?”

答案是,你有点不能。想象一下,您的测试在单处理器计算机上运行。函数无法同时被调用两次(但它可以部分执行一次,然后在另一个线程中再次启动)。

考虑其他方法来测试竞争条件。在更正式的结尾,你可以使用像Spin和Promela这样的工具来验证这些东西,但它比在单元测试中产生两个线程要多得多。有关详情,请参阅此处:http://lwn.net/Articles/243851/

一种不那么正式的方法是以某种方式调用你的函数,当第一个线程调用它时,它会在它的中间睡眠。然后,当第一个呼叫暂停时,您很可能会看到第二个呼叫继续执行。但请注意在这种方法上浪费时间,因为它主要验证您是否正确编写了测试,并且可能无法证明代码在实践中的线程安全性。