我正在用C编写一个操纵杆库,我想让它保持线程安全。是否可以使用pthread互斥锁?即使使用我的库的应用程序使用ACE作为线程框架(不确定ACE是否只是扩展pthread,但我们假设它没有),它们是否会工作?
同样适用于Windows:我可以在mingw + gcc中将Windows {CriticalSection
与pthread结合使用吗?或者是操作系统必须执行的操作,以便始终使用本机实现(在Linux上使用pthread,在Windows上使用CriticalSection
)?
答案 0 :(得分:0)
线程可以在用户级别运行,因此无法保证操作系统将安排所有并发。话虽如此,您应始终寻求使您的库线程安全,而无需用户使用特定的锁定机制。
例如,您可以使所有功能“纯粹”或可重入。您还可以提供明确不线程安全的版本以及需要特定库的替代版本,例如pthread。在最极端的情况下,您可以提供无锁同步。