Nav*_*K N 5 c concurrency multithreading shared-libraries
我在C中编写一个共享库.我知道C函数不是线程安全的.
我的库例程看起来像,
struct lib_handle {
....
};
int lib_init(lib_handle **handle);
int lib_process(lib_handle *handle);
....
....
Run Code Online (Sandbox Code Playgroud)
每个方法都有一个指向lib_handle对象的指针.所有状态都存储在此结构中.没有使用全局变量.
我假设如果每个线程创建它自己的lib_handle实例,多个线程可以使用库函数.由于每个线程都有自己的句柄,因此everythibg应该可以工作.
我还没有验证这个假设.我想知道你们对这个设计有什么看法,你能说出我的库是线程安全的,因为每个线程都有它自己的句柄吗?
任何帮助都会很棒!