繁体   English   中英

如何使C中不同类线程中包含的全局变量安全

[英]How to make global variables that are contained in a different class thread safe in c

我必须归档一个名为main.c的文件和一个称为disperse.c的文件

disperse.c创建线程来处理main.c中的负载,如下所示:

void *entry(void *arg) {  
    foo_function()  
}

void disperse() {  
    pthread_t thread;  
    pthread_create(&thread, NULL, entry, (void*) args);  
    pthread_join(thread, NULL);  
}

main.c包含foo_function(),并且该函数编辑全局变量。 有什么方法可以使main.c线程中包含的全局变量安全?

通常,最好避免使用全局变量,除非您绝对不能做其他事情。 使用pthreads时,线程安全取决于函数。 并非所有的pthreads函数在共享数据上都是“线程安全的”。 您还可以使用线程互斥锁来保护共享数据。 这些本质上是对共享数据的一种锁,仅允许一个线程一次访问它。 本文对此进行了很好的介绍: https : //randu.org/tutorials/threads/#protect

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM