gpt4 book ai didi

c - 使 C 库线程安全

转载 作者:太空狗 更新时间:2023-10-29 15:02:43 25 4
gpt4 key购买 nike

我正在用 C 编写一个共享库。我知道 C 函数不是线程安全的。

我的图书馆程序看起来像,

struct lib_handle {
....
};

int lib_init(lib_handle **handle);
int lib_process(lib_handle *handle);
....
....

每个方法都有一个指向lib_handle 对象的指针。所有状态都存储在这个结构中。没有使用全局变量。

我假设如果每个线程都创建它自己的 lib_handle 实例,则多个线程可以使用库函数。由于每个线程都有自己的句柄,everythibg 应该可以工作。

我还没有验证这个假设。我想知道你们对这个设计有什么看法,你们认为我可以将我的库声明为线程安全的,因为每个线程都有自己的句柄吗?

任何帮助都会很棒!

最佳答案

这将使库线程的数据/状态安全。

但是您还必须确保您的库使用其他库中的线程安全函数,例如使用 strtok_r 而不是 strtok

关于c - 使 C 库线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12000211/

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