问题标签 [pthread-join]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - pthread_join 后的分段错误
我正在尝试使用 c 在 ubuntu 中使用多个线程计算 pi 的值。我并不完全熟悉 pthread_create 和 pthread_join 应该作为输入的变量,以及如何处理类型“void”。我在代码中植入了一些 printf,以便找到问题的根源,显然问题出在 main() 中最后一个“for 循环”中的“pthread_join”中
这是我的代码:
}
这是我在终端中得到的日志:
c - 分离的 pthread 导致内存泄漏
当终止运行未分离的 pthread 的进程时,存在已知的内存泄漏。但是,分离线程似乎不是解决方案。考虑以下最小示例:
创建一个带有无限循环的分离线程并立即终止该进程。根据pthread_detach(3)
,一旦整个进程终止,线程的资源应该自动释放回系统。然而,这显然不是正在发生的事情:
我应该担心吗?在实际程序中,我有几个阻塞线程,因此,就像在最小示例中一样,我不能真正pthread_join()
使用它们。我应该打电话pthread_cancel()
而不是exit()
直接打电话吗?
c++ - 在循环中加入线程 - 转换错误
所以我试图在 for 循环中加入线程,但它给了我错误:
从“pthread_t* {aka long unsigned int*}”到“pthread_t {aka long unsigned int}”的无效转换。
代码如下,任何帮助将不胜感激!提前致谢!
c++ - pthread_exit() 之后多久可以预期 pthread_join() 成功?
我的任务是创建一个复制功能的用户级线程库pthread
(完全披露:这是针对操作系统课程)。但是,我不清楚当线程已经退出时如何交互pthread_join()
。pthread_exit()
特别是,手册页指出:
pthread_join() 函数等待线程指定的线程终止。如果该线程已经终止,则 pthread_join() 立即返回。
这是否保证即使我创建了数百万个线程,它们的结果也可用于一次连接?否则,我可以期望结果保留多长时间?
我不是在寻找有关如何实现它的建议(这是最有趣的!),我只是想在我深入研究之前确定行为。
c - pthread_join:警告:从指针转换为不同大小的整数?
我的代码
编译代码时,有两个警告:
我阅读了以下的手册页pthread_join
:
根据我的理解,存在状态(int类型)存储tret
在我的代码中,所以我使用(int)
转换void *
为int
,但是上面的警告被抛出,所以,我的问题是:
如何修改我的代码以清除警告?
multithreading - 无法设置处理器关联
我正在尝试在 8 核集群上实现此代码。它有 2 个插槽,每个插槽有 4 个核心。我正在尝试创建 8 个线程并使用pthread_attr_setaffinity_np
函数设置亲和力。但是当我查看我在 VTunes 中的表现时,它告诉我正在创建 3969 个奇数线程。我不明白为什么以及如何!最重要的是,我的性能与未设置关联(OS 线程调度)时完全相同。有人可以帮我调试这个问题吗?我的代码运行得很好,但我无法控制线程!提前致谢。
- - - - - - - - - - - - - - - - - - - 代码 - - - - - - --------------------------------
c++ - 我需要加入我的应用程序中的每个线程吗?
我是多线程的新手,我需要全面了解“加入”,我是否需要加入应用程序中的每个线程?多线程如何工作?
c++ - 我怎么知道线程是否是可连接线程?
我是多线程的新手,我需要知道我什么时候需要加入我的线程而不是分离它。我需要考虑哪些因素才能知道线程是“必须加入”的?
c - C 线程 (pthread_create) 未按预期工作
我想创建多个线程(下例中为 10 个)并让每个线程运行一个函数。
这是我的代码:
我在执行过程中期待这样的输出:
但相反,我得到这样的输出:
每次我重新运行我的程序时,输出都会略有变化。id 和 value 重复,模式看起来不规则。
怎么了?重复发生是因为子线程也在 for 循环中创建线程吗?如果是这样,我会感到困惑,因为在我阅读的许多 pthread_create 示例中,人们似乎正在使用一个循环来迭代 N 次来创建 N 个线程(就像上面一样)。因此我假设上面的代码会有 1 个主线程创建 N 个子线程?我错了吗?提前致谢。
java - 将 JNI 与 CORBA 一起使用时出现线程问题
我有一个使用 JNI 的 Java 应用程序。使用java的主线程我正在创建一个pthread,例如。t1(使用 pthread_create)在本机中。
我还有一个 UI,它使用 IDL 和 CORBA 与我的 java 应用程序进行交互。当我在 java 中调用我的 Close() 从 UI 时,它将尝试在本机中执行线程 t1 的 pthread_join()。但是这个 pthread_join() 失败了,因为它试图通过主线程以外的不同线程加入。我怀疑这里的 CORBA 线程没有切换到主线程。请建议我如何执行 pread_join()。