我知道 C++11 增加了对线程的支持。例如:
#include <iostream>
#include <thread>
void bar()
{
std::cout << "bar()\n";
}
int main()
{
std::thread thread(bar);
thread.join();
return 0;
}
但是,有没有办法在单独的进程中执行 bar
函数?如果没有,有没有讨论是否应该增加这样的功能?
注意: 我知道使用平台独立库的可能性,我只是好奇 C++ 是否直接支持或将来会支持。
原文由 James Adkison 发布,翻译遵循 CC BY-SA 4.0 许可协议
不,c++ 标准(尤其是 C++11)没有任何 进程 的概念(因此我不能在这里给你一个更合理的参考作为最流行和当前最新的 c++ 文档的 搜索结果 地点)。
我也不知道为下一个标准版本 C++-17(又名 C++-1z)计划了进程支持。至少 维基百科网站 没有提到它。
有一个流行的 实现 被提议用于提升,但从未被用于 C++ 标准提议。
您通常无法编写可移植代码以在仅存在一个 进程 的裸机系统上运行。
最简单的选择是回
fork()
和wait()
由 POSIX Open Group 指定:尽管我认为创建一个额外的过程来执行一个简单的功能并没有多大意义。在这种情况下,创建流程会产生很多您不希望的开销。
好吧,如果您想使用
exec()
函数系列中的函数启动另一个程序,那是一个不同的用例。我建议您以
std::thread
为例。