2010-11-27 71 views
0

假设我们有一个不会干扰其他数据并独立运行的函数。但是,我听说一种方法是将整个应用程序放入一个部分,然后单独放置一部分。它可以完成,而主应用程序产卵到一个线程,并确保主应用程序不会等待它结束?功能可以在主应用程序内独立运行吗? [OpenMP]

例如伪代码:

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

线程0不会等待你的函数对线程1完成为标准。它实际上需要更多的工作让你等待。 – Hannesh 2010-11-27 14:51:13

+0

您正在描述线程的行为... – Falmarri 2010-11-27 17:54:55

回答

2

这不是OpenMP的主要目标:它是为并行处理而非并发编程而构建的。检查你的本地线程库并寻找叫做“守护线程”,“分离线程”或类似的东西。

1

如果你指的是分离的线程,那么答案是肯定的。线程运行,然后退出而不必等待。你失去了从线程获得返回状态的能力。

Larsmans后指出,为什么你可能不希望使用线程

相关问题