gpt4 book ai didi

c - Pthread 属性使用

转载 作者:太空狗 更新时间:2023-10-29 15:31:30 25 4
gpt4 key购买 nike

我有几个关于 pthread 属性的问题,在其他地方找不到答案。

  1. 如果我创建一个属性(线程/互斥量),我可以在将它分配给线程/互斥量后立即释放它,还是必须保留它直到线程完成?
  2. 在多个线程/互斥量上重用属性(线程/互斥量)是否安全?

最佳答案

如果您阅读 pthread_mutexattr_init() 的 POSIX 规范,它说:

After a mutex attributes object has been used to initialize one or more mutexes, any function affecting the attributes object (including destruction) shall not affect any previously initialized mutexes.

同样,虽然不是很清楚,pthread_attr_init() 的规范说:

The resulting attributes object (possibly modified by setting individual attribute values) when used by pthread_create() defines the attributes of the thread created. A single attributes object can be used in multiple simultaneous calls to pthread_create().

以及pthread_create()的规范说:

The pthread_create() function shall create a new thread, with attributes specified by attr, within a process. If attr is NULL, the default attributes shall be used. If the attributes specified by attr are modified later, the thread's attributes shall not be affected.

我认为这些引用意味着答案是:

  1. 是的,你可以在方便的时候销毁属性对象。实际上,POSIX 调用会复制属性。

  2. 是的,重用属性是安全的。

关于c - Pthread 属性使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47428232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com