【问题标题】:let pthread finish without the function waiting for it?让 pthread 在没有函数等待的情况下完成?
【发布时间】:2012-04-16 01:36:42
【问题描述】:

规范说函数“不能阻塞等待线程或进程完成。换句话说,通常,function() 将在子进程和工作线程完成之前返回。” 我怎样才能做到这一点?说 pthread_join 会使函数等待 pthread 结束,如果没有它,线程会在它完成所有工作之前被取消。

谢谢。

【问题讨论】:

  • 我正在为我的编程课编写一个程序。该函数生成多个进程和一个线程,但它不应该等待进程和线程结束。
  • "not wait for neither the processes nor the thread to end" 应该是什么??
  • 只是说...如果pthread_join 使调用线程等待,而您不希望调用线程等待...似乎很清楚您需要不我>做呢。 至少,直到合适的时间。在你需要结果之前做好。
  • 函数 mapreduce_map_all()。它产生进程和线程,但应该允许它在子进程或线程完成之前返回。

标签: c pthreads


【解决方案1】:

在我看来,这听起来像是您必须将线程的引用存储在线程容器中,该容器要么是全局的,要么由函数返回并由调用者保存。然后,在进程的最后(但可能在函数返回后更长时间),在该容器中的所有线程上调用 pthread_join 以确保它们正确完成。

【讨论】:

  • pthread_detach()?线程完成后会被操作系统回收。
猜你喜欢
  • 2016-06-24
  • 1970-01-01
  • 2014-05-15
  • 2014-10-24
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多