当前位置: 首页 > 面试题库 >

分离与可连接的POSIX线程

宋腾
2023-03-14
问题内容

我一直在使用pthread库在C中创建和加入线程。

  1. 什么时候应该从一开始就创建分离的线程?与可连接线程相比,它具有任何性能优势吗?

  2. 不在pthread_join()可连接(默认)线程上执行合法操作吗?还是这样的线程应该在使用detach()之前始终使用该函数pthread_exit()


问题答案:
  1. 当您知道不想等待时,创建一个分离线程pthread_join()。唯一的性能好处是,当分离的线程终止时,可以立即释放其资源,而不必等到线程加入后才可以释放资源。

  2. 不加入可连接的线程是“合法的”。但是通常不建议这样做,因为(如前所述)在线程加入之前,资源不会被释放,因此,如果您不加入线程,则资源将无限期地被束缚(直到程序退出)。



 类似资料:
  • 问题内容: 我可以附加到docker进程,但是+ 不能与其分离。基本上停止了这个过程。 建议使用什么工作流程来运行流程,偶尔将其附加以进行一些更改,然后分离? 问题答案: 要在不退出外壳的情况下分离tty,请使用转义序列+ 后跟+ 。更多细节在这里。 此来源的其他信息: docker run -t -i→可以与docker attach 分离并重新连接 docker run -i→不能与分离; 会

  • 我正在用Java 8编写一个命令行应用程序。有一部分涉及一些计算,我相信使用多个线程并行运行可能会带来好处。然而,我在编写多线程应用程序方面没有太多经验,因此我希望您能引导我朝着正确的方向前进,我应该如何设计代码的并行部分。 为了简单起见,让我们假设所讨论的方法接收到一个相对较大的长数组,它应该返回一个只包含素数的集: 现在,我想重构方法,使其由四个线程并行执行,当所有线程都完成时,返回结果。在我

  • 问题内容: 如何在JavaScript中检测Internet连接是否离线? 问题答案: 您可以通过发出 失败的XHR请求 来确定连接丢失。 标准方法是 重试 几次 请求 。如果没有通过,请 警告用户 检查连接,然后 正常失败 。 旁注: 将整个应用程序置于“脱机”状态可能会导致很多容易出错的状态处理工作。无线连接可能会来去去等等。因此,最好的选择是妥善地失败,保留数据,并警告用户..允许他们最终解

  • 我正在尝试从Java分离并附加一个RServe会话。连接到RServe可以完美地工作,但连接会导致异常。 线程“main”org.rosuda.REngine.Rserve.Rserve异常:无法连接:连接被拒绝:连接到org.rosuda.REngine.Rserve.RConnection。(RConnection.java:90)org.rosuda.REngine.Rserve.RConn

  • 问题内容: 如何在JavaScript中检测Internet连接是否离线? 问题答案: 您可以通过发出 失败的XHR请求 来确定连接丢失。 标准方法是 重试 几次 请求 。如果未通过,请 警告用户 检查连接,然后 正常失败 。 旁注: 将整个应用程序置于“脱机”状态可能会导致很多容易出错的状态处理工作。无线连接可能会来去去等等。因此,最好的选择是妥善地失败,保留数据,并警告用户..允许他们最终解决

  • 我可以附加到docker进程,但Ctrl+C不能从它分离。基本上停止进程。 要使流程运行、偶尔附加到它以进行一些更改,然后分离,推荐的工作流是什么?