几个线程要互斥的访问同一个资源。常见的好像有条件变量,互斥锁,信号量等。
但是现在比较麻烦的是线程里面会调用多个不同的dll实现功能,而这些dll才是使用资源的真正对象,请问条件变量,互斥锁和信号量在这种跨dll的环境下可以用吗?
可以。
怎么实现啊?被调用的dll怎么得到主dll里面的互斥对象?
@Jingle Guo: 从 DLL 导出函数、类、变量,会吗?
@Launcher: 我学会的方法只能够实现主dll使用被调用dll的函数,类,变量。
被调用的dll不依赖于主dll,怎么取得主dll里面的函数,类,变量呢?
@Jingle Guo: 我假设 A 依赖 B,从 B 中导出函数、类、变量供 A 调用,这是基础的用法,如果现在有需求,要求 A 导出函数、类、变量供 B 使用,那么就产生了循环依赖,这是我们编程中应该坚决禁止的,那么你的需求该如何实现呢?很简单,做个类比,将 A 和 B 都等价为 class,那么我们很快就能得出解决方案,将 A 中的变量作为参数传递进 B 中的某个导出方法。
@Launcher: 喔,我都忘了可以这样了,非常感谢啊!