gpt4 book ai didi

c++ - 并行化具有大量全局变量的库

转载 作者:行者123 更新时间:2023-11-28 00:53:11 24 4
gpt4 key购买 nike

我目前正在使用 QT (4) 来并行化一个由非程序员用 C 编写的非线程安全库,因此有很多全局变量。线程不需要交互或共享数据,它们每个都只调用库的一堆方法,然后库最后给出一个输出以供进一步使用。

但问题是,全局变量默认在线程之间共享,导致库在不同的地方崩溃。有两种方法可以解决这个问题:

重构整个库以不使用全局变量(哎哟),或者找到一种使全局变量成为非共享的方法,或者找到第三种神奇的方法。

后者是 QT 还是标准 (C++01) C++ 的选项?

最佳答案

使用线程本地存储是一种使全局变量非共享的方法。起点,以及指向不同实现细节的链接:

http://en.wikipedia.org/wiki/Thread-local_storage

关于c++ - 并行化具有大量全局变量的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12931473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com