0

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

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

4

1 回答 1

0

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

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

于 2012-08-14T02:27:45.283 回答