请问终止boost::thread的一个问题

Cadillac Cadillac 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
void test ()
{
for (int i = 0 ; i < 10000;++i)
{
Sleep(1);
//POXIS::Sleep(1);
printf("1--%d\n",i);
}
}

std::vector<boost::thread*> vec2;
void createthread()
{
boost::thread thrd1(&test);
thrd1.detach();
vec2.push_back(&thrd1);
}

int main(int argc, char* argv[])
{
std::cout<<boost::thread::hardware_concurrency()<<std::endl;

createthread();

Sleep(1000);
std::cout<<vec2.size()<<std::endl;
for (int i = 0 ; i < vec2.size(); ++i)
{
vec2[i]->interrupt(); //请问这里为什么不对,可以这样终止我的线程么?
std::cout<<"interrupt one "<< vec2.size()<<std::endl;
}
}

我的意思是,希望能在一个函数中创建比较多的线程,这些线程的个数是不可预见的
且每个线程的生命期也是有长有断
但是如果该线程没有终止
我可以手动的在另一个函数中终止该进程
请问我的这种方法为什么会不对呢,运行到我写的注释那里时出问题
...全文

相关推荐

boost库的线程例子和互斥锁

boost库的线程例子和互斥锁,自己做的demo,需要的朋友可以下载。

zxk69809

【BOOST C++ 线程】boost::thread库的基本使用方法总结

boost::thread的六种使用方法总结,本文初步介绍线程的函数、构造、执行的详细解释。

无水先生

【BOOST C++ 13 并行编程】(1) Boost.Thread

以下库支持并行编程模型。 Boost.Thread 允许您创建和管理自己的线程。 Boost.Atomic 允许您通过多个线程的原子操作访问整数类型的变量。 Boost.Lockfree 提供线程安全的容器。 Boost.MPI 起源于超级计算机领域。使用 Boost.MPI,您的程序可以多次启动并在多个进程中执行。您专注于对应该并发执行的实际任务进行编程,而 Boost.MPI 会协调这些过程。使用 Boost.MPI,您无需处理诸如同步访问共享数据之类的细节。但是,Boost.MPI 确实需要适当的运

无水先生

boost—thread教程

首先看看boost::thread的构造函数吧,boost::thread有两个构造函数: (1)thread():构造一个表示当前执行线程的线程对象; (2)explicit thread(const boost::function0& threadfunc): boost::function0可以简单看为:一个无返回(返回void),无参数的函数。这里的函数也可以是类重载operator()构成的函数;该构造函数传入的是函数对象而并非是函数指针,这样一个具有一般函数特性的类也能作为参数传入,在下面有例子。

qq_23049437

boost thread dll 应用

一个 vs 使用 boost thread dll 的demo,IDE 是 vs15。其中包含所需要头文件和dll,可放心下载,有使用问题可发email到157369414@qq.com

YaoYuan9323
评论 5
收藏 已收藏
分享
返回顶部
Cadillac
工具平台和程序库 24,850 成员 27,330 内容