使用具有不同线程框架的pthread互斥锁

时间:2012-08-14 02:04:45

标签: c multithreading pthreads

我正在用C编写一个操纵杆库,我想让它保持线程安全。是否可以使用pthread互斥锁?即使使用我的库的应用程序使用ACE作为线程框架(不确定ACE是否只是扩展pthread,但我们假设它没有),它们是否会工作?

同样适用于Windows:我可以在mingw + gcc中将Windows {CriticalSection与pthread结合使用吗?或者是操作系统必须执行的操作,以便始终使用本机实现(在Linux上使用pthread,在Windows上使用CriticalSection)?

1 个答案:

答案 0 :(得分:0)

线程可以在用户级别运行,因此无法保证操作系统将安排所有并发。话虽如此,您应始终寻求使您的库线程安全,而无需用户使用特定的锁定机制。

例如,您可以使所有功能“纯粹”或可重入。您还可以提供明确线程安全的版本以及需要特定库的替代版本,例如pthread。在最极端的情况下,您可以提供无锁同步。