本想测试printf的线程安全的,结果发现boost::thread的一件有趣的事,见代码
#include <cstdio>
#include <boost/thread.hpp>
#include <boost/bind.hpp>
int fun1()
{
for(int i=0; i<10; i++)
printf("哈哈哈哈哈哈\n");
return 0;
}
int fun2(int count)
{
for(int i=0; i<count; i++)
printf("呵呵呵呵呵呵\n");
return 0;
}
int main()
{
boost::thread(fun1); // 不以打印
boost::thread(fun2, 10); // 可以打印
boost::thread t(fun1); // 可以打印
getchar();
return 0;
}
不知什么原因,知道的可以告诉我吗