我正在用 C 编写一个共享库。我知道 C 函数不是线程安全的。
我的图书馆例程看起来像,
struct lib_handle {
....
};
int lib_init(lib_handle **handle);
int lib_process(lib_handle *handle);
....
....
每个方法都有一个指向lib_handle
对象的指针。所有状态都存储在这个结构中。不使用全局变量。
我假设如果每个线程都创建自己的lib_handle
实例,多个线程可以使用库函数。由于每个线程都有自己的句柄,所以everythibg 应该可以工作。
我还没有验证这个假设。我想知道你们对这个设计的看法,你们认为我可以将我的库声明为线程安全的,因为每个线程都有自己的句柄吗?
任何帮助都会很棒!