24,854
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <boost\thread.hpp>
#include <boost\ptr_container\ptr_vector.hpp>
void test()
{
for (int i = 0 ; i < 10000;++i)
{
boost::this_thread::sleep(boost::posix_time::seconds(1));
printf("1--%d\n",i);
}
}
void createthread(boost::ptr_vector<boost::thread>& vec)
{
vec.push_back(new boost::thread(test));
//vec[0].detach();
}
int main(int argc, char* argv[])
{
boost::ptr_vector<boost::thread> vec;
std::cout<<boost::thread::hardware_concurrency()<<std::endl;
createthread(vec);
boost::this_thread::sleep(boost::posix_time::seconds(5));
std::cout << vec.size() << std::endl;
for (size_t i = 0 ; i < vec.size(); ++i)
{
vec[i].interrupt(); //请问这里为什么不对,可以这样终止我的线程么?
std::cout<<"interrupt one "<< vec.size()<<std::endl;
}
system("PAUSE");
}