Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C pthread Linux数据运行时_C_Multithreading_Pthreads_Global Variables - Fatal编程技术网

C pthread Linux数据运行时

C pthread Linux数据运行时,c,multithreading,pthreads,global-variables,C,Multithreading,Pthreads,Global Variables,我的应用程序中有等待条件变量的线程。当编码良好时,线程开始工作并读取一些数据。我的数据是全局变量。是否可以在不使用全局数据的情况下在运行时传递数据?我读了一些关于特定数据的内容,但不知道它在这种情况下是否有用。谢谢大家! 是的,您可以将其传递给线程例程:pthread\u create(线程、属性、函数、*USER\u ARG*)。只需为线程执行所需的数据创建一个结构 如果将*USER_ARG*存储在内存中是很重要的,您通常会希望使用免费存储(mallocit)作为参数,否则您可能会损坏名为pt

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

是的,您可以将其传递给线程例程:
pthread\u create(线程、属性、函数、*USER\u ARG*)
。只需为线程执行所需的数据创建一个结构


如果将
*USER_ARG*
存储在内存中是很重要的,您通常会希望使用免费存储(
malloc
it)作为参数,否则您可能会损坏名为
pthread\u create

的线程堆栈。您可以展开“在运行时传递数据”吗?数据从哪里来?我有一个函数,输入一个向量。向量随执行时间而变化。线程处理此数据。数据会更改,我不希望每次都创建线程。您仍然可以将该数据放入结构中,然后传递给线程例程。如果它现在使用单个全局变量工作,那么只需将该全局变量移动到您传递的结构中即可。如果我有误解,那么代码示例会有所帮助。