锁定c有多少种方法

时间:2012-12-06 00:51:58

标签: c

我是c编程的新手。到目前为止,我只发现pthread_mutex_lock可以使代码区域只由一个线程运行。是否有其他方法可以实现锁定?或者其他每种方法都使用pthread_mutex_lock函数?

2 个答案:

答案 0 :(得分:4)

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

您需要查看threads.hmtx_*函数以了解相关内容。

在此之前,pthreads可能是你最好的选择,虽然不是标准C (a),但它的支持并未强制执行。

例如,Windows使用CreateThread等函数自己进行线程处理。

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


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

答案 1 :(得分:2)

无法锁定c语言。操作系统可能提供对锁定的支持(不考虑语言),pthreads等库可以利用操作系统服务,但这不在语言之下。 (通过包含,其他语言内置了本机锁定,例如通过Java的synchronized关键字。)