首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何序列化Linux中对目录的访问?

如何序列化Linux中对目录的访问?
EN

Stack Overflow用户
提问于 2015-06-25 07:01:57
回答 1查看 1.1K关注 0票数 0

假设在处理器上同时运行4个进程,需要将数据从HDFS (与Spark一起使用)文件系统复制到本地目录。现在,我只希望一个进程复制该数据,而其他进程只是等待第一个进程复制该数据。

所以,基本上,我想要某种信号量机制,每个进程都试图获得信号量来尝试复制数据,但是只有一个进程获得信号量。所有未能获得信号量的进程都会等待信号量被清除(能够获得信号量的进程将在完成复制后清除该信号量),并且当它被清除时,他们知道数据已经被复制了。我如何在Linux中做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2015-06-25 07:10:05

实现信号量有很多不同的方法。经典的V系统信号量方式用man semop描述,在man sem_overview中描述得更广泛。

您可能仍然希望做一些更容易扩展和现代化的事情。许多IPC框架(Apache也有一两个这样的框架!)有原子IPC操作。这些可以用来实现信号量,但我会非常小心。

一般来说,我经常鼓励编写多进程或多线程应用程序的人使用C++而不是C。如果您的状态被很好地封装在一个对象中,那么如果您的状态被很好地封装在一个可以自己执行锁定的对象中,那么查看共享状态的保护位置通常更简单。因此,我建议您看看Boost的IPC同步机制

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31043380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档