2015-07-13 26 views
4

是否可以锁定线程的套接字?例如使用flock文件锁定套接字?

这些锁专为文件而设计,但它们将通用文件描述符作为参数。

+1

你认为std :: mutex? –

+0

@LeśnyRumcajs我有。这个套接字通过软件栈的几个层次。介绍互斥体需要修改大部分软件,包括一些外部API。 –

回答

4

该文档明确指出,鸡群是指文件。从MacOS的文档页面(人):(强调)

羊群()施加或去除与文件描述符fd相关的文件咨询锁。

特别是,这意味着在同一文件上的进程间同步。假设你试图在一个进程内的线程之间进行锁定,似乎明智的做法是依靠pthread_mutex_lock/unlock。 (你即将做一个缓慢的IO,所以我也不会为spinlock而烦恼)。

希望有帮助,

+0

从NOTES下的同一个手册页:“锁定在文件上,而不是文件描述符。” – cdarke