假设我们有一个不会干扰其他数据并独立运行的功能。但是,我听说有一种方法可以将整个应用程序放到一个部分,而仅仅是一个部分。是否可以通过主应用程序将其生成一个线程来确保主应用程序不会等待它结束?
e.g。伪代码:
int main (void) {
<do stuff on thread 0>
<do stuff on thread 0>
<spawn independent function on thread 1 with no waiting>
<do stuff on thread 0>
<do stuff on thread 0>
}
编辑:完全可以用另一种哲学吗? (没有OpenMP)
答案 0 :(得分:2)
这不是OpenMP的主要目标:它是为并行处理而不是并发编程而构建的。检查本地线程库并查找名为“守护程序线程”,“分离线程”或类似内容的东西。
答案 1 :(得分:1)
如果你指的是分离线程,那么答案是肯定的。线程运行,然后退出而不必等待。你失去了从线程中获得返回状态的能力。
Larsmans帖子指出为什么你可能不想使用线程