C++ 访问正在运行的线程

C++ 访问正在运行的线程,c++,multithreading,glew,stdthread,C++,Multithreading,Glew,Stdthread,我正在编写一个使用GLEWMX上下文的插件。插件在线程id(1)下加载GLEWMX上下文。然后,当我运行某个东西时,它会在线程id(2)下运行该任务。我可以访问两个线程ID 我是否应该使用std:thread将活动线程切换到线程(1),以便在该上下文下访问和运行内容?如何做到这一点是和否。有些库确实被限制在单个线程上运行,我假设GLEWMX就是其中之一。这确实意味着您不应该从线程2调用它 然而,当您需要线程1完成某些事情时,您不能切换“活动线程”。在现代计算机上,无论如何都有几个活动线程,因此线

我正在编写一个使用GLEWMX上下文的插件。插件在线程id(1)下加载GLEWMX上下文。然后,当我运行某个东西时,它会在线程id(2)下运行该任务。我可以访问两个线程ID


我是否应该使用std:thread将活动线程切换到线程(1),以便在该上下文下访问和运行内容?如何做到这一点

是和否。有些库确实被限制在单个线程上运行,我假设GLEWMX就是其中之一。这确实意味着您不应该从线程2调用它

然而,当您需要线程1完成某些事情时,您不能切换“活动线程”。在现代计算机上,无论如何都有几个活动线程,因此线程2是活动的这一事实并不意味着线程1是被动的


正确的解决方案是为线程1创建线程安全工作队列。线程2可以将工件放入,线程1在准备就绪时拾取工件。不幸的是,没有标准的库支持,您必须自己拼凑一个。在线程1中使用
std::condition_变量
。等待

我遇到的问题是,我的程序Rhino正在创建所有这些线程,我只能访问线程ID,不知道如何访问最初创建线程以执行工作队列的方式。。。所以我想在第一个线程上调用一些东西,但这是一个很好的响应