0

我是c编程的新手。直到现在我才发现pthread_mutex_lock可以使代码区域只由一个线程运行。还有其他实现锁的方法吗?或者其他所有做锁的方法仍然是使用pthread_mutex_lock函数?

4

2 回答 2

4

线程仅通过 C11 引入 ISO C 标准,这是该标准的较新版本,因此不一定得到广泛支持。

您需要查看功能以了解这一点threads.hmtx_*

在那之前,pthreads它可能是你最好的选择,尽管它不是标准的 C (a),但它的支持不是强制性的。

例如,Windows 有自己的线程处理方式,使用CreateThread.

但是,有各种第三方产品,例如pthreads-win32,旨在为 Windows 提供 pthreads 支持,以帮助从兼容 POSIX 的操作系统移植应用程序。


(a)POSIX 标准(IEEE 1003.1 的一部分),因此对某些人来说可能已经足够了。

于 2012-12-06T01:00:23.883 回答
2

没有办法锁定c语言。操作系统可能提供对锁定的支持(不考虑语言),并且诸如pthreads可以利用操作系统服务的库,但是这与语言无关。(相比之下,其他语言内置了本地锁定,例如通过 Java 的synchronized关键字。)

于 2012-12-06T00:56:36.963 回答