我是c编程的新手。直到现在我才发现pthread_mutex_lock
可以使代码区域只由一个线程运行。还有其他实现锁的方法吗?或者其他所有做锁的方法仍然是使用pthread_mutex_lock
函数?
问问题
781 次
2 回答
4
线程仅通过 C11 引入 ISO C 标准,这是该标准的较新版本,因此不一定得到广泛支持。
您需要查看功能以了解这一点threads.h
。mtx_*
在那之前,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 回答