C语言 将 pthread mutex 与不同的线程框架一起使用



我正在用C编写一个操纵杆库,我想让它成为线程安全的。可以使用 pthread 互斥体吗?即使使用我的库的应用程序使用 ACE 作为线程框架(不确定 ACE 是否不仅扩展了 pthread,但让我们假设它不扩展),它们也能工作吗?

Windows

也是如此:我可以在mingw+gcc中将Windows的CriticalSection与pthread结合使用吗?还是线程化是操作系统必须做的事情,以便始终使用本机实现(Linux 上的 pthread和 Windows 上的 CriticalSection)?

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

例如,您可以将所有函数设置为"纯"或可重入。您还可以提供明确不是线程安全的版本和需要特定库(如 pthread)的替代版本。在最极端的情况下,您可以提供无锁同步。

最新更新