假设我在文件 function.c 中定义了一个函数,并在 main.c 中创建了多个 pthread 来执行 function.c 中的函数。
如果在function.c中,我定义了一个全局变量,例如int foo;
然后,我的问题是,每个线程是否都有自己的变量“foo”实例,还是共享一个“foo”?
他们共享一个foo
变量。全局变量在每个进程中始终仅存在一次,并且通常受互斥体保护以避免并发访问。
从 C11 开始,您可以使用 thread_local 将变量声明为每个线程的本地变量:
#include <threads.h>
...
thread_local int perThreadInt;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13399 次 |
最近记录: |