c - pthread Linux 数据运行时

标签 c multithreading pthreads global-variables

我的应用程序中有线程等待条件变量。当条件良好时,线程开始工作并读取一些数据。我的数据是全局变量。是否可以在运行时传递数据而不使用全局数据?我读了一些有关特定数据的内容,但我不知道它在这种情况下是否有用。谢谢!

最佳答案

是的,您可以将其传递给线程例程:pthread_create(thread, attr, function, *USER_ARG*)。只需为线程执行所需的数据创建一个结构体即可。

*USER_ARG* 在内存中的存储位置很重要,您经常需要使用自由存储(malloc it)作为参数,否则可能会损坏调用pthread_create的线程的堆栈。

关于c - pthread Linux 数据运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7777037/

相关文章:

c - 并行矩阵计算

c - 在 C 中,使用用户输入值计算方程没有给出预期结果?

java - 如何处理wait()和notify()?

c - 为什么我的简单 pthreads 程序会因段错误而崩溃?

c - printf 防止竞争条件

c++ - vector 异常处理程序和 Microsoft C 运行时错误处理

java - 双重检查锁定 - 它在 Java 中到底有效吗?

c++ - 如何消除并行 std::transform_reduce() 的中间容器?

linux - 了解新线程的 GDB 输出(Linux systag)

c - Pthread连接段错误