gil*_*sah 6 c multithreading static-variables
我在C库中有全局静态变量,它在多线程运行中生成异常.我需要以某种方式使它们安全(即,每个线程应该与这些变量的不同实例相关).任何推荐的方法?
Ale*_*lli 10
没有标准方法适用于所有C实现,但存在特定于实现的解决方案.例如,使用Microsoft的编译器(参见文档),
__declspec( thread ) int tls_i = 1;
Run Code Online (Sandbox Code Playgroud)
让tls_i生活在线程本地存储(每个线程都有这个变量的自己单独的实例).使用gcc,语法是
__thread int tls_i;
Run Code Online (Sandbox Code Playgroud)
您可能还想查看关于该主题的维基百科条目.