进程间互同步

    问题:WEB进行文件的配置,Linux服务对配置进行读取。在这里我们面临的问题是读写之间的同步问题。当一个进程对文件进行写入,一个进程对文件进行读取,如果同时访问到一个位置,导致系统崩溃。当初这里有一个初步的同步方案:当WEB进程修改配置,创建一个文件,标志当前的配置不可用。当linux服务检测到文件的存在,当前不会读取配置,直到检测到该文件不存在,重新配置文件。

    这里存在一个问题:二元信号量的问题。当你检测到信号量存在的情况下,准备对信号量进行加锁,如果这个时候由于中断的原因,出现了进程被挂起,另一个进程恰巧执行到这一步,将会导致读写的异常。

    其实也可以通过一个技巧来简单的实现:尝试创建管道(这里有一篇文章描述管道),如果管道存在,停止读取文件,如果不存在,创建管道,读取文件。

    

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。