wlf*_*myd 0 c parallel-processing
我有两个.c文件(main.c和support.c).首先编译Support.c,然后编译main.c并与support.o链接.我在support.c中有几个非静态全局变量.
如何存储来自support.c的全局变量?如果main.c是多线程的并且有两个线程调用support.c中的函数,它们是否共享这些全局变量,或者它们各自都有自己的副本?
全局变量是一个全局变量,无论你编译和链接你的程序有多少部分,总是只有一个变量.如果多个线程同时访问全局数据,则需要确保自己进行适当的同步.
获取全局或块静态变量的单独副本的唯一方法是声明它_Thread_local,这是在C11中引入的.线程本地全局变量在线程启动时初始化,并在线程连接时解除分配.